전체 글
-
TIL 33th day(2021.11.23)TIL(Today I Learned) 2021. 11. 23. 13:31
스프링부트 서블릿 환경 구성 @ServletComponentScan 서블릿 자동 등록 HttpServletRequest HTTP 요청을 파싱하고 그 결과를 객체에 담아서 제공한다. 이 기능은 HTTP 스펙이 제공하는 요청과 응답 메시지 사용법을 숙지하고 있어야한다. HTTP 데이터 요청 방식 3가지 GET - 쿼리 파라미터 POST - HTML Form HTTP message body 궁금한점 ✔ Iterator()와 Enumeration의 차이 Iterator는 Fail-faster 방식이라는것. Fail-faster란 배열에 새로운 값이 등록되었을 때, Exception처리를 해준다는 의미이다. (Enumeration은 적용되지 않는다.) 스냅샷을 이용해서, 하부 객체 변경이 일어나도 Exceptio..
-
HTTP 기본 지식(1)(IP,TCP,UDP,PORT,DNS,URI)HTTP 2021. 11. 22. 17:22
IP(Internet Protocol) 인터넷 통신에 필요 IP 패킷 출발지 IP, 목적지 IP 한계) 비연결성(받을 대상이 없어도 패킷 전송), 비신뢰성(패킷의 연결 중단 또는 불규칙한 순서), 프로그램 구분을 못함 해결방안) TCP TCP(Transmission Control Protocol) IP 패킷안에 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보, 전송 데이터 등이 포함 연결 지향(선 연결 후 전송)(TCP 3 way handshake(가상 연결)) 순서 보장 신뢰성, 대부분 application에서 사용 TCP 3 way handshake 클라이언트와 서버가 서로간에 syn(접속 요청)와 ack(요청 수락) 및 데이터 전송 가상 연결 IP 스택 4계층 애플리케이션 계층 -..
-
Web 기본 동작 방식(in spring)Spring 2021. 11. 22. 17:21
웹 서버, WAS(Web Application Server) 웹 서버, WAS 모두 HTTP 기반으로 동작 웹 서버는 정적 리소스(파일) WAS는 서버 기능 + 정적 리소스 동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링MVC 애플리케이션 코드를 실행하는데 더 특화 Servlet HTTP 요청 및 응답 정보를 평리하게 사용하거나 제공할 수 있다. 즉, 개발자는 HTTP 스펙을 매우 편리하게 사용가능하다. 서블릿 컨테이너 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함 서블릿 생성, 호출, 관리해줌 서블릿 객체는 싱글톤으로 관리 요청마다 새로운 객체 생성은 비효율적. 주의) 공유 변수 사용 주의(지역변수, 파라미터, ThreadLocal 등을 사용해야함) 멀티 쓰레드 처리 ..
-
TIL 32th day(2021.11.22)TIL(Today I Learned) 2021. 11. 22. 17:13
TIL 32th day(2021.11.22) 웹 서버, WAS(Web Application Server) 웹 서버, WAS 모두 HTTP 기반으로 동작 웹 서버는 정적 리소스(파일) WAS는 서버 기능 + 정적 리소스 동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링MVC 애플리케이션 코드를 실행하는데 더 특화 Servlet HTTP 요청 및 응답 정보를 평리하게 사용하거나 제공할 수 있다. 즉, 개발자는 HTTP 스펙을 매우 편리하게 사용가능하다. 서블릿 컨테이너 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함 서블릿 생성, 호출, 관리해줌 서블릿 객체는 싱글톤으로 관리 요청마다 새로운 객체 생성은 비효율적. 주의) 공유 변수 사용 주의(지역변수, 파라미터, ThreadL..
-
TIL 31th day (2021.11.21)TIL(Today I Learned) 2021. 11. 21. 21:54
초기화 및 소멸자 콜백📌 외부라이브러리 수정이 불가피할때는 @Bean의 initMethod와 destroyMethod를 사용 외부라이브러리 수정이 불필요할때는 PostConstruct, PreDestroy Annotation 사용 빈 스코프📌 싱글톤 스코프(항상 같은 객체 스프링 빈을 반환한다.) : 기본 스코프 프로토타입 빈 스프링 컨테이너에서 조회할 때마다 새로운 스프링 빈 생성하고, 자동으로 의존관계 주입 및 반환 스프링 컨테이너에서 관리 x, 클라이언트에서 관리 o, 직접 destroy를 선언 싱글톤 빈과 프로토타입 빈을 같이 사용했을 시 문제점 싱글톤 빈에 포함되어있는 프로토타입 빈은 이미 의존관계 주입이 완료된 상태이므로 새로 생성되지 않는다! 싱글톤 빈과 프로토타입 빈을 같이 사용했을 시 문..
-
TIL 30th day(2021.11.20)TIL(Today I Learned) 2021. 11. 20. 00:20
조회한 빈이 모두 필요한 경우📌 List, Map ex) 할인의 종류 rate or fixDiscountPolicy 둘다 필요한경우 실무에서의 자동 그리고 수동📌 스프링빈은 많은 기능을 자동으로 지원한다. 이를 적극적으로 활용하는것이 좋다. 업무 로직 빈과 기술 지원 빈이 있다. 업무 로직 빈에는 '자동'이, 기술 지원 빈에는 '수동'이 유지보수에 유리하다. 왜?) 기술 지원은 광범위하게 적용되고 그 수가 적어 오류 사항을 확실하게 찾고 유지보수해야하기 때문 반면에, 업무 로직 빈(비즈니스 로직)에서도 '수동' 선언이 좋을 때가 있다. ex) '다형성'을 사용할 때,(List, Map) 또는 여러 빈을 사용해야할때 왜? ) 다른 사람이 내 코드를 ..
-
TIL 29th day(2021.11.19)TIL(Today I Learned) 2021. 11. 19. 20:33
다양한 의존관계 주입 방법 생성자 주입(가장 선호하는 방식) 한번만 호출하는 방식, '불변', '필수' 의존관계에 사용 의존 클래스를 구분할 수 있다. final 사용 가능 필수 주입 데이터 '누락'을 "컴파일 오류"로 구분 가능하다. 수정자 주입(setter 주입) '선택', '변경' 가능성이 있는 의존관계에 사용 필드 주입(참고, 필드 자체를 변경하지 않고 getXxx(), setXxx() 메서드를 통해 변경하는 java bean properties rules) 안티 패턴(높은 결합도(OCP 위반), 단위테스트가 어렵다.) 일반 메서드 주입 한번에 여러 필드를 주입 받을 수 있다.(잘 쓰이지 않음) 정리 생성자 방식은 순수 자바 ..