[Effective Java] item 1 : 생성자 대신 정적 팩터리 메서드를 고려하라

클래스를 얻는 수단 public 생성자 : 클래스의 인스턴스를 얻는 전통적인 수단 정적 팩토리 메서드 : 클래스의 인스턴스를 반환하는 정적 메서드

2023년 6월 21일
·
0개의 댓글
·

[HTTP] HTTP 메서드의 활용

GET정렬 필터(검색어)POST, PUT, PATCH회원 가입, 상품 주문, 리소스 등록, 리소스 변경 등ex: 이미지, 정적 텍스트 문서조회 : GET 사용일반적으로 쿼리 파라미터 없이 리소스 경로로 단순히 조회 가능ex: 검색, 게시판 목록에서 정렬 필터(검색어)조

2023년 5월 1일
·
0개의 댓글
·

[HTTP] HTTP 설계 및 메서드

리소스 식별URI 계층 구조 활용회원 목록 조회 /members회원 목록 조회 /members회원 목록 조회 /members회원 목록 조회 /membersURI : 리소스만 식별하며, 행위는 식별하지 않는다.리소스 = 명사 / 행위 = 동사URI 네이밍시 참고!계층 구

2023년 4월 23일
·
0개의 댓글
·

[HTTP] HTTP의 기본

HyperText Transfer Protocol거의 모든 것!HTML, TEXTIMAGE, 음성, 영상, 파일JSON, XML (API)즉,거의 모든 형태의 데이터 전송 가능서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용지금은 HTTP 시대HTTP/0.9 :

2023년 4월 23일
·
0개의 댓글
·

[Web] URI와 웹 브라우저 요청 흐름

자원 식별자Locator, Name 또는 둘 다 추가로 분류될 수 있다.Uniform Resource Locator리소스가 있는 위치를 지정보통 리소스를 찾는 방법으로는 보편적으로 URL을 사용따라서, 편의상 앞으로 URI를 URL과 같은 의미로 이야기할 것임Unifo

2023년 4월 23일
·
0개의 댓글
·

[Web] 인터넷 통신

모든 것이 HTTP 위에서 동작함! (데이터를 주고 받음)Internet Protocol지정한 IP Address(IP 주소)에 데이터 전달Packet이라는 통신 단위로 데이터 전달패킷 구조Client가 패킷을 전달하기Server가 패킷을 전달하기비연결성패킷을 받을 대

2023년 4월 23일
·
0개의 댓글
·

[Spring] Bean Scope

Bean Scope : 빈이 존재할 수 있는 범위 다양한 Scope Singleton 기본 스코프 스프링 컨테이너의 시작과 종료까지 유지되는, 가장 넒은 범위의 스코프 Prototype 스프링 컨테이너는 생성과 의존관계 주입가지만 관여 그 이후는 관

2023년 4월 21일
·
0개의 댓글
·

[Spring] Bean Lifecycle Callback

스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 사용 → 소멸 전 콜백 → 스프링 종료스프링 빈 : 객체를 생성하고, 의존 관계 주입 후에야 필요한 데이터를 사용할 준비가 제대로 완료됨준비 완료 시점을 알려주기 위한 콜백 메서드 필요함!스

2023년 4월 18일
·
0개의 댓글
·

[Spring] 의존관계 자동 주입

생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입생성자 호출시점에 딱 1번만 호출되는 것이 보장된다.불변, 필수 의존관계에 사용요즘 가장 많이 쓰임💡 중요!해당 클래스에 생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동 주입 된다. (물

2023년 4월 16일
·
0개의 댓글
·

[Spring] Component Scan, @Autowired

스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다.Bean 이름 : 기본설정) 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.단, 이름을 직접 설정하고 싶으면@Component("memberService2") 처럼 애너테

2023년 4월 16일
·
0개의 댓글
·

[Spring] Singleton Container

💡 Singleton Container가 필요한 이유?스프링 없는 순수한 DI 컨테이너 : 요청을 할 때 마다 객체를 새로 생성고객 트래픽이 초당 100이 나오면 초당 100개 객체가 생성 / 소멸 : 메모리 낭비👉🏻 해결방안 : 해당 객체가 딱 1개만 생성되고,

2023년 4월 16일
·
0개의 댓글
·

[Effective Java] item 56 : 공개된 API 요소에는 항상 문서화 주석을 작성하라

API 문서 API를 쓸모 있게 하려면 문서를 잘 작성해야 함 사람이 직접 작성하려면 코드가 수정될 때마다 매번 함께 수정해줘야 함 Javadoc Javadoc(자바독): API 문서 수정 등을 사람 대신 해줄 수 있는 자바의 유틸리티 소스코드 파일에서 문서화 주석(

2023년 4월 16일
·
0개의 댓글
·

[Spring] Spring Container, Bean

스프링 컨테이너ApplicationContext : 스프링 컨테이너@Configuration을 설정(구성) 정보로 사용@Bean이라 적힌 메서드를 모두 호출해서, 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다.스

2023년 4월 12일
·
0개의 댓글
·

[Spring] IoC, DI, Ioc/DI Container

제어의 역전Spring에만 국한된 용어는 아님프로그램의 제어 흐름을 직접 제어하는 것이 아니라, 외부에서 관리하는 것ex) AppConfig가 프로그램의 제어 흐름을 가져감📌 Framework vs Library프레임워크 : 내가 작성한 코드를 제어하고, 대신 실행함

2023년 4월 12일
·
0개의 댓글
·

[Spring] 스프링 핵심 원리의 이해 - 예제 개선하기

악덕 기획자 : 고정 금액 할인이 아닌, 10% 정률 할인으로 변경하고자 한다. 📣 참고 : 애자일 소프트웨어 개발 선언RateDiscountPolicy현재의 코드는 OCP, DIP를 위반하고 있다.배우는 본인의 배역을 수행하는 것에만 집중해야 한다.남배우는 어떤 여

2023년 4월 11일
·
0개의 댓글
·

[Spring] 스프링 핵심 원리의 이해 - 예제 만들기

기능 : 회원 가입, 회원 조회등급 : 일반 회원, VIP 회원 (2가지 등급)회원 데이터는 자체 DB를 구축할 수도 있고, 외부 시스템과 연동할 수도 있다. (미정)회원은 상품을 주문할 수 있다.회원 등급에 따라 할인 정책을 적용할 수 있다.모든 VIP는 1000원을

2023년 4월 11일
·
0개의 댓글
·

[Spring] 스프링과 객체 지향 프로그래밍

Spring의 핵심 컨셉 > 📌 Spring과 Java > - Spring : Java 언어 기반의 Framework > - Java : 객체 지향 언어라는 특징이 가장 대표적인 프로그래밍 언어 👉🏻 객체 지향 언어가 가진 강력한 특징을 살려내는 Framewo

2023년 4월 10일
·
0개의 댓글
·

[Spring] 스프링이란?

💡 스프링 제대로 공부하는 방법단순히 스프링 기능을 배우고 사용하는 것은 어렵지 않다그러나 IoC, DI 등의 용어 및 SOLID 객체지향 설계 원칙도 이해해야 스프링의 진정한 핵심 가치를 알 수 있게 됨📌 스프링과 객체지향 프로그래밍스프링 컨테이너가 왜 필요할까?

2023년 4월 10일
·
0개의 댓글
·

[Effective Java] item 54 : null이 아닌, 빈 컬렉션이나 배열을 반환하라

💬 한 줄 요약null을 반환하는 API는 사용하기 어렵고, 오류 처리 코드도 늘어난다. 성능이 더 좋은 것도 아니다.다음은 컬렉션이 비었다면 null을 반환하는 코드이다.위와 같은 코드에서 만약 null값을 반환하게 된다면, 클라이언트는 이 null 상황을 처리하는

2023년 3월 26일
·
0개의 댓글
·

[Effective Java] item 49 : 매개변수가 유효한지 검사하라

매개변수의 유효성 검사 메서드와 생성자 대부분은 입력 매개변수의 값이 특정 조건을 만족하기를 바람 제약사항은 반드시 문서화해야 함 메서드 몸체가 시작되기 전에 검사해야 함 "오류는 가능한 한 빨리 (발생한 곳에서) 잡아야 한다"는 일반 원칙 📌 제약사항은 반드시

2023년 3월 20일
·
0개의 댓글
·