분류 전체보기 75

2024. 8. 9. (금) 슈퍼코딩 부트캠프 Day 61 / 주특기 7주차

1. 회원가입, 로그인 구현2. 예외처리, 코드개선1. 대표적인 웹 공격패턴 알아보기XSS, CSRF, SQL Injection XSS(=Cross Site Scripting) : 사용자가 웹페이지에 악석 스크립트를 삽입하여 의도치 않은 명령을 하거나 해킹을 하는 것.XSS 방지CSRF(= Cross Site Request Forgery) : 사용자의 세션이나 토큰을 이용하여 다른 명령을 실행하게 하는 것CSRF 방지하기SQL Injection : 서버로 요청을 보낼때 정상적인 요청 대신 악의적인 DB SQL문을 주입하는 것SQL Injection 방지하기2. 웹 개발시 자주 겪는 CORS 대응하기웹 브라우저의 동일 출처 정책(SOP)출처CORS 3. 서버 백엔드 보안정보 숨기기서버 코드의 보안 문제환경..

카테고리 없음 2024.08.10

2024. 8. 8. (목) 슈퍼코딩 부트캠프 Day 60 / 주특기 7주차

1. 캐시(Cache)란? Web 구조에서 캐싱 사용캐시 : 데이터를 원래 소스 보다 효율적으로 접근할 수 있는 임시 저장소 (Key-Value 구조)Web 애플리케이션에서 캐시 사용하는 경우2. HTTP 캐싱과 E-tag로 개선하기HTTP 캐시 : HTTP 클라이언트의 요청에 대한 응답값을 임시 저장하는 곳캐시 사용시 DB내용이 바뀌면?Cache Validsation : 캐시값 유효성검증E-tag 흐름3. 스프링 캐시로 성능 개선하기아쉬운점 Spring Cache 사용하여 개선세팅1. HTTP 무상태성무상태성 : HTTP는 이전 클라이언트에 대해서 기억하지 못한다.무상태성을 해결하는 방법 -> 상태에 대해서 서버 / 클라이언트가 가지고 있어야 한다.2. HTTP 쿠키와 세션 이용하기HTTP 쿠키 : 브..

카테고리 없음 2024.08.08

2024. 8. 7. (수) 슈퍼코딩 부트캠프 Day 59 / 주특기 7주차

1. 테스트 코드 개론기존 코드 기능 검증방식기존 방식의 문제점테스트 코드 = 반복적인 검증 과정 줄이는 코드테스트 코드 종류테스트 코드 설정하기2. 순수 유닛 테스트로 검증하기테스트 JUnit AnnotationJUnit과 같이 사용테스트 시나리오 = Given-When-Then순수 유닛 테스트로 검증하기 3. Mocking 유닛 테스트로 검증하기 Mocking이란? Mocking이 필요한 이유Mocking 테스트 관련 라이브러리 Mockito1. 스프링 슬라이스 테스트테스트코드 피라미드와 통합테스트통합 슬라이스 테스트@DataJpaTest로 DaoLayer 슬라이스 테스트 하기 WebMvcTest로 web Layer slice 테스트하기 -> 많이 사용하지는 않음2. 스프링 통합 테스트전체 통합 테스..

카테고리 없음 2024.08.07

2024. 8. 6. (화) 슈퍼코딩 부트캠프 Day 58 / 주특기 7주차

1. JPA Repository 기본 메소드 이용하기JPA Entity 더티 체킹으로 업데이트 하기JPA Repository 자동 쿼리 메소드 이용하기JPA Pagination 구현하기(쉽게 말해서 페이지 나누기)1. JPa Entity 관계 매핑하기매핑할때 고려할 3가지다대일 관계일대다 관계일대일 관계다대다 관계 다대일 단방향다대일 양방향 양방향 관계에서 주인 정하기 2. JPA Fetch 정책과 JPQL 사용하기연관 객체 들고오기 - JPQL(Java Persistence Query Language) : 자바의 객체지향 쿼리 3. JPA N+1문제N+1문제란 ? 연관 관계가 설정된 Entity 조회 시 조회된 갯수 만큼 조회 쿼리가 추가로 실행되는 현상Fetch Join 으로 해결4. JPA와 Spr..

카테고리 없음 2024.08.06

2024. 8. 5. (월) 슈퍼코딩 부트캠프 Day 57 / 주특기 7주차

1. JavaDoc 문서화 개선문서화 다듬기1. 기존 Java 예외처리와 ResponseEntity오류 발생시 status code 정확하게 보내기  예외 발생 미처리시 500 발생적절한 예외 전파 적용이 핵심이다HTTP status code 응답 보내기2. Spring advice로 처리하기 3. Spring AOP 살펴보기횡단 관심사(=흩어진 관심사) 문제공통적인 코드들을 모듈화AOP 철학이 적용된 기술   1. SQL구문 해방과 ORM, JPA기존 SQL 사용 구문의 불편한 점왜 이런 문제가 발생할까?어떻게 해결할까?     ORM과 JPAJPA 내부 동작 원리JPA 내부 구성요소JPA 대표 구현체 HibernateJPA 설정

카테고리 없음 2024.08.05

2024. 8. 2. (금) 슈퍼코딩 부트캠프 Day 54 / 주특기 6주차

1. 스프링부트 심화반복되는 코드 / 문서화, 출력의 한계 / 예외처리 부재 / SQL문 종속 / 비즈니스 로직 검증 부재-> 유틸리티 라이브러리로 스프링코드 중복 줄이기, 문서화와 로그 남기기, 예외처리하기 학습 예정! 2. Lombok 사용법 및 실습3. MapStruct 사용법 및 실습 4. 컴파일 메타 프로그래밍1. 로깅과 Logback로그(Log)란? 서버가 수행한 작업/상태에 대한 기록로그 레벨 로깅 핵심 개념 : 로거와 로그패턴로그 어펜더logback을 사용하기 위한 설정- 설치 및 설정파일 세팅- logback 사용하기

카테고리 없음 2024.08.02

2024. 8. 1. (목) 슈퍼코딩 부트캠프 Day 53 / 주특기 6주차

1. Service Layer 구현2. 심화 구현작업 처리의 원자성 예시Service Layer와 트랜잭션트랜잭션 : 데이터 처리 원자성을 보장하기 위해 여러작업을 하나의 작업으로 묶는 것              #슈퍼코딩, #1:1관리형부트캠프, #백엔드, #backend, #백엔드공부, #개발공부, #백엔드개발자 #취준일기, #취준기록, #취뽀, #빡공, #HTML/CSS, #javascript, #react , #java, #spring

카테고리 없음 2024.08.02

2024. 7. 31. (수) 슈퍼코딩 부트캠프 Day 52 / 주특기 6주차

1. 스프링 프로젝트 기본 파일 2. Profile 설정하기3. 스프링 코드 아키텍쳐 3-layered 스프링 부트를 이용해서 코드를 짜려면 어떻게 짜야할까?코드아키텍쳐 : 소프트웨어구조/구성 요소 조직적 정리 -> 코드 효율적 관리어떤 코드 아키텍쳐들이 있을까?3-layer(3-tier) 아키텍쳐3-layer 아키텍쳐를 사용하는 이유1. Web layer RestContorller와 Dispatcher ServletDTO(Data Transfer Object) : 데이터를 담아 전달하는 객체Jackson 라이브러리 : DTO Json 직렬화 / 역직렬화 하는 라이브러리Jackson 라이브러리는 Getter를 보고 Getter가 있는 속성만 가져올 수 있음 -> 그래서 DTO에 getter를 추가해야함..

카테고리 없음 2024.08.01

2024. 7. 30. (화) 슈퍼코딩 부트캠프 Day 51 / 주특기 6주차

1. 프레임워크 vs 라이브러리프레임워크 : 주도권이 프레임워크에 있음라이브러리 : 주도권이 개발자에게 있음Java와 스프링부트가 대표적인 이유Spring과 Spring Boot  1. Web 웹이란? 인터넷을 통해 사람들과 정보를 공유하는 공간 정보를 렌더링하는 두가지 대표 방식- SSR(Server Side Rendering) : 서버에서 주도적으로 렌더링을 해서 클라이언트에 전달해주는 방식-- 서버-> 클라이언트로 HTML을 세팅해서 넘겨줌 - CSR(Client Side Rendering) : 서버로부터 받아온 정보를 클라이언트에서 렌더링 하는 방식-- 서버에서 데이터를 클라이언트로 보낸 뒤 -> 클라이언트에서 받아온 HTML과 JS등을 이용해 조합해서 페이지 표시 2. WAS(Web Applic..

카테고리 없음 2024.07.31

2024. 7. 29. (월) 슈퍼코딩 부트캠프 Day 50 / 주특기 6주차

1. 네트워크 개요네트워크란? 둘 이상의 컴퓨터, 장치 등이 서로 정보를 주고받는 구조LAN / WAN?- LAN(Local Area Network) : 장치들을 연결시켜주는 네트워크, - WAN(Wide Area Network) : LAN들을 연결시켜주는 네트워크 Web ? 인터넷을 통해 정보를 공유하는 공간WWW (World Wide Web) : 전세계 인터넷을 연결 시켜 보급 핵심 역할1. 정보 전달 방식과 패킷, 프로토콜기존 정보 전달 방식의 문제 : 회선 교환 방식 -> 정보를 전달 하는 동안 계속해서 회선을 점유하는 방식. 다른 요청은 응답할 수 없음.현대 정보 전달 방식 : 패킷 교환 방식 -> 주고 받는 정보를 패킷으로 나누어 전송 프로토콜 : 둘 이상의 물체가 정보 전달 시 의사소통하는 ..

카테고리 없음 2024.07.30