본문 바로가기

728x90

전체 글

(338)
12. 26 ~ 12. 30/ 9주 차 WIL 스프링 심화 강의를 마치고, 본격적으로 중간 프로젝트 돌입! 1. 스프링 심화 강의 + 심화 강의 실습 주로 시큐리티, 보안에 관련된 내용이 주를 이루었던 강의였다. 그 이론의 양이 매우 방대하지만, 차분하게 놓고 생각해봤을 때, 사용을 위해 필수적으로 알아야하는 부분만 추려보면 그렇게 많은 양은 아니다. 다만 이 필수 동작원리를 코드로, 말로 설명할 수 있을 때 주니어 개발자가 될 수 있을 것이다. 2. 프로젝트: 블로그를 위한 백엔드 서버 실습 + JWT ~ 수정/삭제 기능 구현 심화 강의를 소화하기에 바뻐 진행을 많이 하진 못했다. 다음 주에 진행될 중간 팀 프로젝트와 같이 만들어 나가면서 구현 실습을 더 해보고 내 것으로 만드는 시간을 많이 가져야겠다. 3. CS 특강 : 캐시 캐시 강의를 수강했..
12. 30 코딩 테스트 입문/ 팀 프로젝트 SA/ 개인 과제 수행/ CS 특강 1. 코딩 테스트 입문 점의 위치 구하기 2. 팀 프로젝트 SA ERD 작성하기, 팀 프로젝트 SA 작성 -> 주말 동안 미비한 강의 내용 복습 후 월요일부터 프로젝트 시작 예정 -> 식별자 vs 비식별자 연관관계 설정 차이 (속성, 인조 키 vs 자연 키) 식별자 vs 비식별자 식별자는 그 키로 인해서 테이블의 값을 특정할 수 있어야 한다. ? ~ 공부해야 이해할 수 있는 내용 3. 개인 과제 수행 포스트맨 전역변수 설정방법과 JWT 토큰을 전역변수에 할당하여 보다 간편한 포스트맨 진행 댓글 수정/ 삭제 기능 구현 주말 간 해볼 것 : 스프링 시큐리티를 사용한 블로그 구현하기 4. CS 특강 캐시 - 캐시 힛이 많을 수록(캐시에 저장된 데이터가 많을수록) 데이터 연산이 정확해진다. - 캐시에 저장하는 ..
Spring 프로젝트 Check-list ✅ Spring / Api [ ] controller, service, repository를 잘 분리하였는지 [ ] dto를 잘 사용하고 있는지 [ ] api의 request와 response는 적절한지 [ ] query param, path param, body를 잘 사용하고 잇는지 [ ] restful api 설계규칙에 부합하는지 ✅ JPA [ ] 엔티티 Column들의 제약조건을 잘 설정했는지(nullable, unique 등) [ ] 엔티티 사이에 적절한 연관관계를 설정했는지(1:N/1:1/N:N, 양방향/단방향 등) [ ] 트랜젝션 단위를 잘 설정했는지, @Transactional이 필요한 곳에 사용되었는지 ✅ Java [ ] 변수와 메서드의 네이밍은 적절한지 [ ] 변수와 상수를 적절하게 사용..
12. 29 코딩 테스트 입문/ 스프링 심화 강의/ 자바 기초 수업 1. 코딩 테스트 입문 - 양꼬치 : 코딩 문제라기 보다는 계산식을 잘 세우면 풀리는 문제, 또한 다른 사람의 풀이를 통해 객체 지향에 대해 좀 더 배워볼 수 있었다. - 머쓱이보다 키 큰 사람 2. 스프링 심화 강의 1) Exception 스프링 예외처리 방법 1) 컨트롤러에 Try-catch 문을 추가 2) 컨트롤러 클래스에 예외처리 추가 3) 글로벌 예외처리 : @ContollerAdvice @RestControllerAdvice -> @ControllerAdvice + @ResponseBody 핵심 : 관심사를 분리하자 2) Transactional 더 이상 쪼갤 수 없는 최소단위의 작업 하나의 최소 단위의 작업에 여러가지 데이터 변경을 넣으면, 모두 저장되거나, 아무 것도 저장되지 않거나를 보장..
데이터 베이스를 더 안전하게 관리하기(Primary, Replica) 출처 : 내일배움캠프 DB가 다루는 데이터 : 회원정보, 서비스 이용정보 등 가장 중요한 리소스 -> DB의 훼손 가능성 : DB가 있는 하드디스크의 손상 등 ~ 일반적으로 2대 이상을 운용하고 이를 동기화한다. 동기화 방법 : 일반적으로 읽기 전용 DB와 쓰기 전용 DB로 나누고 쓰기 전용 DB는 하나, 읽기 전용 DB를 여러 개 두고 쓰기 DB를 추적하는 방식을 사용한다. -> Primary/Replica 방식 Primary : 쓰기 전용 == @Transactional(readOnly = false) ~ readOnly 기본값은 false Replica : 읽기 전용 == @Transactional(readOnly = true) 전제조건 : 스프링에 Primary DB endpoint, Replic..
Spring Transaction 출처 : 내일배움캠프 @Transactional
Spring Exception 출처 : 내일배움캠프 Http 상태코드도 Http 응답 헤더 첫 줄에 추가되어 반환되는 요소 중 하나이다. https://ryanclaire.blogspot.com/2020/10/HTTP-Overview.html HTTP 프로토콜 구조 개요와 예제 HTTP 프로토콜 구조 개요와 예제 ryanclaire.blogspot.com 주요 응답상태코드 종류 200번대 : 성공 400번대 : 클라이언트 에러, 잘못된 요청 500번대 : 서버 에러, 요청은 정확하지만 서버 에러로 오류 발생 스프링에서 제공하는 상태코드 정보 enum 클래스 public enum HttpStatus { // 1xx Informational CONTINUE(100, Series.INFORMATIONAL, "Continue"), // ....
12. 28 코딩 테스트 입문/ 스프링 심화 강의 + 자바 ORM 표준 JPA 프로그래밍 1. 코딩 테스트 입문 배열 원소의 길이 import java.util.ArrayList; import java.util.List; class Solution { public List solution(String[] strlist) { List answer = new ArrayList(); for (String s : strlist) { int cnt = 1; for (int j = 1; j 시도했더니 값이 제대로 저장되지 않았다. -> 도움을 받은 끝에 fetch를 사용하고 생성자에 @Builder를 추가하고 post객체에 setter로 comment 주입 후 그 코멘트를 코멘트 리스트에 저장하는 방식 사용 : 해결 다만, - setter를 사용한 점 - cascade는 되는데 fetch는 왜 영속성 ..

728x90