전체 글

초보 개발자의 공부 블로그입니다.
2023.11.10 - [Knowledge/개발지식] - [스진초 5기/개발지식] DDD 설계와 SQL 중심 설계 [스진초 5기/개발지식] DDD 설계와 SQL 중심 설계 오늘의 주제는 DDD 설계이다. DDD 설계는 워낙 요즘 많이 사용하고 팀프로젝트나 실무에선 기본으로 사용되기 때문에 DDD 프로젝트의 구조(패키지 구조 등...)엔 생각보단 익숙하다. 하지만 '왜 사 jh7722.tistory.com 위 글에서 관계형 데이터베이스를 활용한 SQL 중심 개발의 문제점을 다뤘었다. 이번에 JPA 공부를 다시 시작하면서 SQL 중심개발과 ORM를 활용한 객체 중심 개발의 차이를 알아야 필요가 있어 정리한다. 객체와 관계형 데이터베이스의 차이를 나타내는 4가지 핵심 1. 상속 관계형 데이터베이스는 기본적으로..
·Trouble Shooting
개요 자바과제를 진행하다 Scanner 입력값에 대한 예외처리를 위해 try catch문을 사용했는데 무한 루프에 빠지게 되었다. 문제 발생 코드 public static void main(String[] args) { startMenu(); Scanner sc = new Scanner(System.in); while (true) { try { int target = sc.nextInt(); if (target == 1) { System.out.println("회원 관리 메뉴를 선택하였습니다."); } else if (target == 2) { System.out.println("과목 관리 메뉴를 선택했습니다."); } else if (target == 3) { System.out.println("수강 ..
스프링 프로젝트 하면 ResponseEntity 나 Custom 응답을 만들어서 프런트엔드와 소통한다. 거기에 꼭 포함되는 게 HTTP Status Code이다. 자주 사용하는 200, 201, 400, 401은 알지만 나머지는 그냥 안 쓰는 코드네 이걸로 사용해야지 하고 사용했던 경험이 있다. 이참에 HTTP 상태코드를 정리해 보자. HTTP Status Code(HTTP 상태코드) HTTP 상태코드는 3자리 숫자로 만들어지며, 첫 번째 자리는 1에서 5까지 제공한다. 첫 번째 자리가 4와 5인 경우는 정상적인 상황이 아니라고 판단되므로 관리자나 개발자가 확인하여 처리해줘야 한다. 1xx(정보) : 요청을 받았으며 프로세스를 계속 진행한다. 2xx(성공) : 요청 정상 처리되었다. 3xx(리다이렉션) ..
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. 주석 이번 챕터에서는 4가지 주제로 설명을 해보려고 한다. 주석을 최대한 쓰지 말자 좋은 주석 주석보다 어노테이션 JavaDoc 01. 주석을 최대한 쓰지 말자 책에서는 일단 주석을 사용하는 것을 지양하도록 설명하고 있다. 지양하는 이유는 올바른 주석을 활용하기가 생각보다 어렵기 때문이다. 올바른 주석은 그 어떤 정보보다 유용하지만 대부분의 주석은 그러하지 못하다. 주석은 나쁜 코드를 보안하지 못한다. 코드에 주석을 추가하는 이유는 일반적으로 코드품질이 나쁘기 때문이다. 코드품질이 나쁘다는 것은 코드만으로 본인이 작성한 로직을 설명하지 못한다는 의미이다. 이렇다 보니 주석으로 코드의 의도를 표현하는 경우가 발생한다...
이번에 프런트엔드와의 협업을 하다 CORS 설정을 접하게 되었다. 설정은 검색을 해서 해결은 했지만 CORS에 대해 자세히 이해하면 더 좋을 것 같다는 생각을 해 정리를 해보았다. CORS란? CORS란 Cross-Origin Resource Sharing의 약자로, 웹 브라우저에서 실행되는 스크립트가 다른 도메인의 리소스에 접근할 수 있도록 하는 보안 기술이다. 보안 정책으로 인해 브라우저는 동일 출처 정책(Same-Origin Policy)을 따르며, 이는 웹 페이지에서 로드된 문서나 스크립트가 동일한 출처(프로토콜, 호스트, 포트가 동일)에서만 리소스에 접근할 수 있다는 것을 의미한다. 동일 출처 정책에 위반되는 경우 1. 프로토콜 - http와 https는 프로토콜이 다르다. 2. 도메인 - do..
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. 이미지 출처 - https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898 Chapter3. 함수 어떤 프로그램이든 가장 기본적인 단위는 함수이다. 이 장은 함수를 잘 만드는 법에 대해 알려주고 있다. 01. SOLID 법칙 우선 책에 내용을 정리하기 전 SOLID 법칙에 대해 간단히 정리하고자 한다. SOLID 원칙은 객체지향 설계의 5가지 원칙이라고 하며, 책에서도 해당 방식을 언급하면서 설명하므로 알아줄 필요가 있다. SRP 단일 책임 원칙 OCP 개방-폐쇄 원칙 LSP 리스코프 치환 원칙 ISP 인터페이스 분리 원칙..
개발자들이 인증 관련 처리를 하다 보면 세션, 쿠키, 토큰, JWT 등의 단어들을 맞닥뜨리게 된다. 이 단어들의 각각 의미가 무엇이며, 인증처리 간의 어떻게 연결되어 사용될 수 있는지 알아보자. 쿠키 vs 토큰? 인증처리를 할 때 가장 많이 하는 질문 중 하나이다. '인증 처리를 쿠키로 하는 것이 좋은가요? 아니면 토큰 방식이 좋은가요?' 사실 이 질문은 쿠키에 대한 지식이 부족하기 때문에 하는 질문 중 하나이다. 우선 쿠키에 대해 우선 알아보자. 쿠키란 우리가 사이트에 방문하면 브라우저는 서버에 요청(Request)을 보낸다. 서버는 요청에 대한 응답(Response) 보내는데 데이터와 페이지 정보 등을 전달하게 된다. 또한 브라우저에 저장할 쿠키도 전달하게 된다. 그러면 브라우저는 해당 쿠키를 저장하..
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. Chapter 1. 깨끗한 코드 클린코드 1장에서는 어떤 코드가 깨끗한 코드이며 왜 깨끗한 코드를 사용해야 하는지 설명하고 있다. 나쁜 코드 코드를 읽게 되었을 때 '뭔가 이상하다. 변수의 의미도 모르겠고 중복코드가 많네. 포맷팅도 이상하고, 함수가 너무 뚱뚱한데?'라고 느낀 다면 나쁜 코드라고 볼 수 있다. 성능이 나쁜 코드 불필요한 연산이 들어가서 개선의 여지가 있는 코드 의미가 모호한 코드 이해하기 어려운 코드, 네이밍과 그 내용이 다른 코드 중복된 코드 비슷한 내용인데 중복되는 코드들은 버그를 낳는다. (재활용이 아닌 코드를 복붙 해서 여러 군데 사용하는 경우) 나쁜 코드가 나쁜 이유 나쁜 코드는 깨진 유리창..
JH_DEV77
JH’s 개발블로그