[F-Lab 챌린지 71일차 TIL]

성수데브리·2023년 9월 6일
0

f-lab_java

목록 보기
59/73

AWS EC2 인바운드 규칙에서 처음에 사용자 지정 TCP 에 인바운드를 허용할 웹 어플리케이션의 포트를 지정했는데 네트워크 통신이 안되었다.
결과적으로 원인은 Http 프로토콜의 port 인 80 을 열어주지 않아서 그랬던 것.

Port

  • port는 데이터가 들어오고 나가기 위한 출입구와 같다.
  • port를 통해 통신이 호스트의 어느 프로세스로 가야할 지 명시해준다.

HTTP 기본 포트

  • HTTP 의 기본 포트는 80

  • 80 포트가 Http port 가 열려있어야만 Http 프로토콜을 사용하는 웹 서비스 포트로 데이터가 드나들 수 있다.

well-known-port

  • Http 포트 80 처럼 특정 서비스에 정해진 포트가 있다. 메이저 서비스나 프로토콜에 이용하기 위해 예약되고 있는 포트 번호를 well known port 라 한다. 이 번호는 IANA라는 단체가 관리하고 있다.

    출처 : http://www.codns.com/b/B05-120

파일 전송 프로토콜, 메일 전송 프로토콜, SSH 용 포트 등이 있다.

  • 웰 노운 포트는 루트 권한만이 포트를 열 수 있다고 한다.
  • 이 포트로 데이터를 수신하는건 루트 권한 프로그램만 가능하나, 이 포트로 송신은 누구나 가능하다.

스프링부트 문서 읽으며 알게된 것

빈 생성자 주입에 @Autowired 선언

  • 매개변수 있는 생성자가 여러개인 경우 생성자 주입에 사용될 생성자에 선언한다.
    import java.io.PrintStream;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class MyAccountService implements AccountService {
    
        private final RiskAssessor riskAssessor;
    
        private final PrintStream out;
    
        @Autowired
        public MyAccountService(RiskAssessor riskAssessor) {
            this.riskAssessor = riskAssessor;
            this.out = System.out;
        }
    
        public MyAccountService(RiskAssessor riskAssessor, PrintStream out) {
            this.riskAssessor = riskAssessor;
            this.out = out;
        }
    
        // ...
    
    }

Spring Boot use caches

  • 스프링 부트는 성능 향상을 위해 컴파일 된 템플릿을 캐싱한다. 이것 때문에 개발시에는 변경 내용이 바로바로 반영이 안될수 있으니 spring-boot-devtools 은 디폴트로 캐싱 옵션을 비활성화한다.

0개의 댓글