전체 글(209)
-
NGINX
◎ NGINX의 탄생 배경 -> NGINX 초기에는 아파치 서버의 구조적 한계를 극복하기 위해 사용되었다. -> 아파치 서버는 구조상 커넥션이 형성될 때 마다 프로세스가 생성되었다. 새로운 클라이언트의 요청이 들어오면 매번 해당 요청을 위한 프로세스가 생성되는 구조다. -> 프로세스를 생성하는 시간이 오래 걸리기 때문에 아파치에서는 프로세스를 미리 만들고 새 클라이언트의 요청이 들어오면 미리 만들어 놓았던 프로세스를 사용했다. 이 방식을 PREFORK 방식이라 한다. -> 이 구조를 통해 다양한 모듈을 만들어 서버에 빠르게 기능을 추가할 수 있었다(확장성이 높음) -> 이를 통해 동적 컨텐츠도 처리할 수 있게 되었다. -> 확장성이 좋아 요청을 받고 응답을 하는 과정을 하나의 서버에서 처리하기 좋았다. ..
2023.11.17 -
Web Server & WAS
◎ Web Server -> 아래 두 가지 의미가 있다. 1. 소프트 웨어적 측면으로 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아 *정적 컨텐츠(html, css 등)를 제공하는 프로그램 2. 하드웨어 측면으로는 1번의 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터 *정적 컨텐츠 : 모든 클라이언트에 대해 동일한 응답 결과를 제공하는 컨텐츠 -> HTTP 기반으로 동작한다. -> Web Server 기능 - 클라이언트로부터 http 요청을 받는다. - 정적 컨텐츠를 제공한다. - *동적 컨텐츠 요청 시 해당 클라이언트의 요청을 WAS에 보내고 WAS에서 처리한 응답을 클라이언트에게 전달한다. *동적 컨텐츠 : 클라이언트에 따라 각각 다른 형태의 응답을 제공하는 컨텐츠 ◎ WAS(Web A..
2023.11.17 -
CORS
◎ SOP(Same Origin Policy) -> 같은 *출처에서만 리소스를 공유할 수 있는 정책 *출처 : 프로토콜, 호스트, 포트를 합친 것이다. http://localhost:8080에서 프로토콜은 http, 호스트는 localhost, 포트는 8080이다. -> 만약 http://localhost:8080 출처에서 접근가능한 리소스가 있다고 가정하고, sop가 적용된 상황이라면 http://localhost:8082로는 해당 리소스에 접근할 수 없다. -> sop를 통해 다른 출처로 들어오는 악의적인 접근(ex:해커가 만든 악성 사이트에 접속하여 요청이 보내지게 되어 사용자의 정보를 탈취)으로부터 보호를 할 수 있다. -> 하지만 다른 도메인의 자원을 호출해서 사용이 필요한 경우가 있다.(ex ..
2023.10.26 -
IAM
◎ IAM(Identity and Access Management) -> aws 리소스에 대한 접근을 안전하게 제어할 수 있는 서비스 -> aws 계정을 생성할 때 처음 만들게 되는 루트 계정은 aws 서비스에 대한 모든 권한을 가지고 있다. 모든 서비스와 리소스에 대한 접근 권한을 가지고 있는 계정이기 때문에 해당 계정이 탈취되거나 보안 상의 문제가 생길 경우 큰 피해를 입을 수 있다. -> aws에서는 루트 계정을 일상적인 작업에 사용하지 않기를 강력하게 권장한다. -> IAM을 사용하면 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 중앙에서 관리할 수 있다. -> 암호나 액세스 키 없이 aws 계정의 리소스를 관리 및 사용할 수 있는 권한을 다른 사용자에게 부여할 수 있다. -> 권한을..
2023.10.15 -
카카오 주소 검색 API 적용
서버 개발 중 메인 홈페이지에 주소 검색과 검색한 주소의 날씨를 보여주는 기능을 구현하려고 한다. 카카오 주소 검색 API를 이용하여 주소 검색을 구현했다. (카카오 - 주소 검색 API) 엔드 포인트는 http://localhost:8080/local/{지역이름}로 해당 지역이름에 해당하는 정보가 출력이 되도록 구현했다. @RestController @RequestMapping("/local") @RequiredArgsConstructor @Slf4j public class LocalController { // 주소 검색을 위한 컨트롤러 @Value("${spring.security.oauth2.client.registration.kakao.client-id}") private String client..
2023.10.06 -
잘못된 브랜치로 pr 후 merge했을 경우 되돌리는 방법
깃 허브에 pull request를 하는 작업 중 실수로 다른 브랜치에 pr 후 merge를 했다. 이 경우 close 된 pr 로 가서 Revert를 누른다. 그러면 아래 그림처럼 pr 창이 새로 나타나는데 merge한다. 그러면 잘못 merge된 브랜치의 상태가 원래대로 돌아온다.
2023.10.05