✅ Object 클래스 자바의 최상위 클래스 Object 클래스가 최상위인 이유? -> 객체의 정보, 비교, 확인 등 자주 사용하는 기본 기능들을 일일이 만들기 힘듬 -> 모든 객체에 필요한 공통기능을 편리하게 제공하기 위해서 만들어짐 ✅ 종류 toString()
지역 변수에 설정시 최초 한번만 할당 가능할당 이후 변수 값 변경시 컴파일 오류 발생매개변수에 final 붙으면, 메서드 내부에서 매개변수의 값을 변경할 수 없음\-> 메서드 호출 시점에 넘겨진 값이 끝까지 고정됨💡 static final , final 공통점 : 둘
기본형 : int, long, double, boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입 참조형 : 객체 또는 배열과 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입 쉽게말해 기본형 변수에는 직접 사용할 수 있는 값이 들어
HTTP 메시지 = HTTP 헤더 + HTTP 바디 ✅ HTTP 헤더의 용도 HTTP 전송에 필요한 모든 부가정보가 담겨있음 EX) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보 등등 Content-Type : 표현 데이터의
✅ HTTP (HyperText Transfer Protocol)HTTP 메시지에는 모든 것을 전송\-> HTML, TEXT, 이미지, 음성, 영상, 파일, JSON, XML(API) 등 거의 모든 형태의 데이터를 전송HTTP의 역사HTTP/0.9 (1991년) : G
✅ IP (인터넷 프로토콜) 역할 지정한 IP 주소에 데이터 전달 패킷 이라는 통신 단위로 데이터 전달 ✅ IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 ex) 친구가 이사갔는지 안갔는지 모른상태로 편지보내는 것 비신뢰성
배포 -> 애플리케이션을 사용자가 사용할 수 있는 상태로 만드는 것 ✅ 개발 사이클 내에서의 배포 개발 서버를 배포 한 후 (개발서버에 여러가지 테스트 진행) 위에서 문제가 없다면 이제 운영서버에 배포를 진행 ✅ 배포 자동 배포 : 실무에서 많이 사용함 ex) J
빈 스코프 : 빈이 존재할 수 있는 범위 스프링 빈은 기본적으로 -> 싱글톤 스코프 로 생성해 줌 ✅ 스프링의 스코프들 싱글톤 스코프 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 스코프 : 스프링 컨테이너는 프로토
총 4가지가 존재 Autowired 로 생성자 주입, setter주입, 필드 주입, 일반 메서드 주입 ✅ 생성자 주입 생성자 호출 시점에 딱 1번만 호출되는 것이 보장 불변, 필수 관계에서 사용 불변 : 어플리케이션 종료 전까지 변하면 안됨 💡 정리 setter
데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료작업이 필요함 ✅ 스프링 빈의 라이프 사이클객체 생성 -> 의존관계 주입스프링 빈은
스프링 빈을 등록할 때 자바코드의 @Bean 이나 XML의 `` 으로 직접 스프링 빈을 등록하였다 하지만 이러한 것들이 쌓이면 귀찮고, 누락 시키는 경우가 발생한다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 이라는 기능을 제
✅ 스프링 없는 순수한 DI 컨테이너 테스트 위 코드는 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청을 할 때 마다 객체를 새로 생성한다. 고객 트래픽이 초당 100이 나오면 초당 100개 객체가 생성되고 소멸된다 -> 메모리 낭비가 심하다. 해결방안은
ApplicationContext 로 인터페이스 이다XML 기반 또는 애노테이션 기반의 자바 설정 클래스로 만들 수 있다스프링 컨테이너 생성스프링 빈 등록빈 이름을 직접 부여할 수 있지만, 항상 다른 이름을 부여하자!@Bean(name="memberService2)스프
✅ 할인 정책 변경기존에 사용하고 있던 FixDiscountPolicy 인터페이스가 아닌 RateDiscountPolicy 로 바꾸려고 함고정 금액 할인이 아니라 좀 더 합리적인 주문 금액당 할인하는 정률 % 할인으로 변경해보자. 예를 들어서 기존 정책은 VIP가 10
메모리 회원 저장소 : 로컬에서 킬때 확인하는 용도 (서버 껐다키면 사라짐) DB 회원 저장소 : 직접 데이터를 넣어서 회원 저장하는 용도 회원 서비스 : MemberServiceImpl 회원 저장소 : 두가지의 구현체로 나누어짐 (MemoryMemberReposit
\-> 좋은 객체 지향 어플레케이션을 개발할 수 있게 도와주는 프레임워크라는 점역할 : 인터페이스구현 : 인터페이스를 구현한 클래스를 인스턴스한 객체장점 역할과 구현으로 구분하면, 유연해지며 변경도 편리해짐클라이언트는 대상의 역할(인터페이스)만 알면된다클라이언트는 구
✅ @Transactional 어노테이션을 통해 트랜잭션 처리Service 부분에서 작성해당 메소드에서 다른 메소드들을 호출해서 여러 서비스 실행하나라도 실패시 모두다 rollback 처리 됨내부 메소드들은 원래는 private 로 만드는 것이 원칙컨트롤러
✅ 순서pom.xml에 spring-boot-starter-security 라이브러리를 추가해준다Filter 인터페이스를 구현할 클래스 생성함FilterRegistrationBean 객체를 반환하는 클래스 생성@EnableWebSecurity 어노테이션을 통해 암호화
✅ 역할html에서 form 태그에서는 action 태그 잘 설정한 후onsubmit 속성을 false로 해서 값이 자동으로 넘어가지 않도록 설정js에서 버튼에 대한 함수를 만든 후, 조건이 맞을 경우 수동으로 submit 호출해준다
✅ 검증 (Validator) 클라이언트 검증 (JS에서 검증) -> 보안에 취약 서버 검증 -> 즉각적인 고객 사용성이 부족 두개를 적절히 섞어서 사용해야함, 최종적으로 서버 검증은 필수 ✅ 검증을 하는 이유 폼 입력시 검증 오류가 발생하면 오류화면으로 바로 이