분류 전체보기 (132) 썸네일형 리스트형 HTTP 상태코드 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리중 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 (리다이렉션) 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 2XX 클라이언트의 요청을 성공적으로 처리 200 : OK, 요청 성공 201 : Created, 요청 성공해서 새로운 리소스 생성 (POST 명령) 생성된 리소스는 응답의 Location 헤더 필드로 식별 202 : Accepted, 요청이 접수되었으나 처리가 완.. HTTP 메서드 API URI 만들기 URI를 만드는 데에 있어 가장 중요한 것은 리소스를 식별하는 것 예시) 회원 관리 API를 만들 때, 아래와 같은 API 필요 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 여기서 리소스는 회원이라는 개념 자체이다. 이 리소스를 어떻게 식별해야 할까? 회원이라는 리소스만 식별하면 된다.(id) → 회원 리소스를 URI에 mapping 회원 목록 조회: /members 회원 조회: /members/{id} 회원 등록: /members/{id} 회원 수정: /members/{id} 회원 삭제: /members/{id} 참고로, 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장 (member X, members O) 위의 리소스 식별된 각각의 URI들을 각 행위(조회,.. 인터넷 프로토콜과 HTTP 개요 IP(인터넷 프로토콜) 지정한 IP 주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 패킷 정보: 출발지 IP, 목적지 IP, 기타 IP 프로토콜의 한계 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성: 중간에 패킷이 사라지거나, 패킷이 순서대로 온다는 보장이 없음 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션을 구별할 수 없음 TCP(전송 제어 프로토콜 - Transmission Control Protocol) TCP 패킷 정보: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등 TCP/IP 패킷이 합쳐지면서 출발지/목적지 IP와 PORT 정보 확인 가능 TCP 특징 연결지향: TCP 3 way handsh.. @PostConstruct, @PreDestroy로 빈 생명주기 관리하기 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요합니다. 이번 포스팅은, 스프링을 통해 이러한 초기화 작업과 종료 작업을 @PostConstruct와 @PreDestroy를 통해서 구현하는 방법에 대해 작성하였습니다. 스프링 빈은 간단하게 아래와 같은 라이프 사이클을 가집니다. 객체 생성 → 의존관계 주입 즉, 스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료됩니다. 따라서, 초기화 작업은 의존관계 주입이 모두 완료되고 난 후 호출해야 합니다. 개발자가 의존관계 주입이 완료된 시점을 알아야 이렇게 .. @Autowired와 Collection 클래스(List, Map, etc.) 아래 포스팅에서 동일 타입의 빈들이 충돌할 때 어떻게 해결할 수 있는지 확인했습니다. 이번 포스팅은 의도적으로 해당 타입의 스프링 빈이 다 필요한 경우, 특히 동적으로 동일 타입의 스프링 빈이 선택되는 경우에는 어떻게 해결할 수 있을지 작성하였습니다. 이 경우에는 자바의 Collection 클래스를 이용하여 동일 타입의 모든 빈들을 저장할 수 있습니다. 코드를 통해 확인해 보겠습니다. // Product 인터페이스 public interface Product { int discount(); } // Product 상속(구현)하는 Computer 클래스 @Component public class Computer implements Product{ @Override public int discount() {.. @Autowired와 @Qualifier, @Primary 아래 포스팅에서 @Autowired의 사용법에 대해서 살펴보았습니다. @Autowired로 의존관계 주입하기 앞 포스팅(@ComponentScan으로 스프링 빈 스캔하기)에서 @Component와 @ComponentScan을 이용하여 스프링 빈을 스프링 컨테이너에 등록하였습니다. 이제는 @Autowired를 이용하여 의존관계를 자동으로 주입할 silver-programmer.tistory.com 위 포스팅에서도 언급했듯이, @Autowired는 타입(Type)으로 빈을 조회합니다. 이때, 특정 타입의 빈 클래스 (위 포스팅에서는 Product 인터페이스)를 상속하는 자식들이 여러 개 있고, 그 자식들도 스프링 빈으로 등록되어 있을 때, 자식들은 부모 타입이므로 부모 타입으로 빈을 조회하면 빈이 2개 이상.. 비트 연산 활용 N번째 비트 조회 변수 target의 N번째 비트가 1인지 여부: AND 연산을 수행합니다. 해당 연산이 0이면 비트가 없는 것이고, 1이면 비트가 있는 것입니다. target & (1 @Configuration + @Bean vs @Component 결론 외부 라이브러리를 사용해야 할 때는 우리가 직접 @Component를 그 라이브러리에 선언할 수 없으므로, @Configuration + @Bean 조합으로 스프링 빈을 생성하고, 그 외에 우리가 직접 제어할 수 있는 클래스들은 @Component를 붙임으로써 자동으로 스프링 빈으로 등록되도록 하자. 참고하면 좋은 글: [Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교 - (1/2) - MangKyu's Diary (tistory.com) [참고자료] https://stackoverflow.com/questions/67691575/when-should-you-use-configuration-instead-of-service-cont.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 17 다음