슈퍼코딩/주특기(JAVA) 44

2024.06.07(금) 슈퍼코딩 신입연수원 10주차 Day 5 후기 - Spring Security, 보안기초

강의113강(Spring Security v3) ~ 117강(wrap-up)Spring SecurityJava 기반 보안 프레임워크기능인증Authentication) : 신원 확인권한 부여(Authorization ) : 특정 자원이나 작업에 대한 접근 권한 확인세션 확인 : 사용자 세션 보호, 동시 세션 제어, 세션 고정 보호 등의 기능 제공CSRF 방지 : CSRF 공격 방지 기능 제공인증Authentication유저 확인인가Authorization유저 권한 확인 및 허가로그인 인증 처리 과정AuthenticationFilter, UserDetails, UserDetailsService 구현하기설정의존성 추가implementation 'org.springframework.boot:spring-boot..

2024.06.06(목) 슈퍼코딩 신입연수원 10주차 Day 4 후기 - Cache, Cookie & Session & JWT

강의109강(HTTP 캐싱과 스프링부트 캐싱) ~ 112강((Spring Security v2)캐싱파라토의 법칙 : 상위 20%가 전체의 80%에 영향을 미치는 현상파레토 법치과 cache 활용20%의 쿼리가 사용되는 쿼리의 80% 사용됨Cache데이터의 원래 소스보다 더 효율적으로 엑세스할 수 있는 임시 저장소웹 애플리케이션에서 사용1) 클라이언트측 HTTP 캐시 사용 → HTTP Cache2) 서버측 Spring 캐시 사용 → Spring CacheHTTP Cache(클라이언트측에서 사용)HTTP 클라이언트의 요청에 대한 응답값 임시 저장소Cache Validation을 서버에 보내서 캐시 유효성 확인이 필요HTTP Response HeaderCache-Control : 어떤 방식으로 유지할지 설정E..

2024.06.05(수) 슈퍼코딩 신입연수원 10주차 Day 3 후기 - 테스팅, 서버 업무, 서블릿 컨테이너, filter, interceptor

강의104강(SpringBoot와 테스팅) ~ 108강(서블릿 컨테이너와 WEB layer 좀 더 살펴보기)테스팅테스트 코드반복되는 검증(테스트) 과정을 줄이는 코드종류Acceptance Test(E2E Test)전체 코드 검증Integration Test(통합 테스트)전체 코드 검증 → 부분 또는 전체 통합 테스트Unit Test코드 일부 테스트종류모킹 유닛 테스트service layer 코드를 주로 검증순수 유닛 테스트의부 의존성이 없는 소스 코드 검증외부 라이브러리 동작 검증에 사용사용방법의존성 추가testImplementation 'org.springframework.boot:spring-boot-starter-test'// test lomboktestCompileOnly 'org.projectl..

2024.06.04(화) 슈퍼코딩 신입연수원 10주차 Day 2 후기 - JPA, PSA

강의102강(스프링 부트와 JPA v1) ~ 103강* 스프링 부트와 JPA v2)JPA기본 SQL 사용 구문의 불편한 점rowMapper 사용, 비슷한 SQL문 직접 작성발생 원인SQL → 데이터 지향, 관계 지향, 선언적Java → 객체 지향적, 행위 지향 패러다임해결방법 : ORMORMObject-Relation-Mapping객체지향 언어와 RDB 변환을 자동으로 처리하는 기술기존 entity의 간접 매핑 → "테이블 영속화" 변경기술 적용Python → django ORM, SQLAlchemyNode.js → Sequelize.jsJava → JPAJPAJava Persistence API(JPA) → Java ORM 규약장점객체 지향 실현 가능재사용 용이코드 생산성 향상단점복잡한 요구에 대한 J..

2024.06.03(월) 슈퍼코딩 신입연수원 10주차 Day 1 후기 - 예외 처리, AOP

강의100강(스프링부트와 문서화와 로깅 남기기) ~ 102강(스프링부트와 JPA)예외 처리HTTP status code500 : 최대한 지양400 : Bad Request403 : Forbidden404 : Not Found406 : Not AcceptableHTTP status 500 발생 이유특정 상황 예외 발생했지만 아무도 처리하지 않은 경우예외 처리의 핵심외부 전파 예외controller layer까지 전파 → 클라이언트에게 예외 전달controller : HTTP error 코드 + 메세지 응답 전달@RestContollerAdvice 사용내부 예외내부 다른 Default 값으로 치환상위 내부  layer 전파 후 처리@RestControllerAdvice특징web layer전역적인 except..

2024.05.31(금) 슈퍼코딩 신입연수원 9주차 Day 5 후기 - Lombok, Mapper, 로깅, 문서화

강의96강(스프링부트 실정 적용하기 v1) ~ 100강(스프링부트와 무넛화와 로깅 남기기)Lombok기능 : 자동 코드 생성Getter, Setter : @Getter, @Setter생성자 : @NoArgsConstructor, @AllArgsConstructorequals(), hashCode(), toString() : @EqualsAndHashCode(of = "id"), @ToString빌더 패턴 : @Builder설치하기의존성 추가compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'plugin 설치 Mapper객체를 매핑해서 다른 객체로 생성해주는 라이브러리필드 이름이 같은 경우에는 자동으로 매핑..