일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- 코딩교육봉사
- softeer
- C++
- 코틀린
- MYSQL
- SW봉사
- 파이썬
- 회고
- 정보처리산업기사
- python
- 코딩봉사
- CJ UNIT
- 공부일지
- 알고리즘
- 문제풀이
- 백준
- programmers
- java
- kotlin
- 데이터베이스
- 스프링
- 자바
- SQL
- 백준 알고리즘
- 소프티어
- BFS
- 백준알고리즘
- 1과목
- 시나공
- Today
- Total
목록개발/Spring, SpringBoot, JPA, Webflux (34)
JIE0025
✅ 개요 JPA를 사용하기 위해 알아야하는 키워드가 너무 많아서 당황했었던 기억이 난다. ORM, JPA, Hibernate, .... 각 용어에 대해 알아보고, 무엇이 장점인지 좀더 명확하게 알아보면 기술을 좀더 제대로 이해하고 사용할 수 있다. 1️⃣ ORM Object Relational Mapping 한마디로 말하면 RDBMS의 테이블과 OOP를 연결하는 기술이다. 데이터베이스에 데이터를 생성, 수정, 읽기, 삭제하는 과정을 객체지향프로그래밍적으로 비즈니스 로직 단에서 좀 더 쉽게 다루기 위해 만들어진 기술이다. (자바 진영에 국한된 기술은 아님) 🖥 Example 만약 데이터베이스에 테이블이 있다고 가정하자. 회원 테이블에는 이름, 성별, 나이 등의 Column을 갖고 있다. 전체 유저를 검색하..
✅ AOP ? Aspect Oriented Programming 관점지향 프로그래밍이라고 부른다. 여러 클래스에 나뉜 책임을 한곳으로 모아서 처리하는 접근 방식이다. 관심사의 분리를 통해 소프트웨어 시스템의 모듈성을 개선하는 프로그래밍 패러다임 ⏺ AOP는 왜 필요할까? : OOP의 한계 ✔️ OOP 객체지향 프로그래밍은 애플리케이션 설계할 때 역할과 책임에 따라 class를 분리하면서, 재사용성, 유지보수성을 크게 증가시켰다. ✔️ OOP의 단점 소프트웨어 시스템에선 로그/보안/트랜잭션과 같은 비기능적인 부분이 굉장히 중요하다. 그러나 비기능적인 부분은 모듈화가 어려웠다. 여러가지 모듈에서 공통적으로 사용되면서, 코드의 중복이 발생되었다. 어플리케이션 전체적으로 걸쳐서 흩어져있는 부가기능을 관심사 ..
학습하면서 정리한 내용입니다. ✅ Request와 Response에서 어떻게(어디에서) DTO를 변환하는걸까? 선행지식으로 요청을 보냈을 때 컨트롤러로 오고, 다시 return되는 과정을 함께 알아야한다. 아래 그림은 request를 보냈을때, Spring Context에서의 동작과정을 나타냅니다 클라이언트로부터, 요청메세지가 들어오면 DispatcherServlet에서 요청 URI를 통해 HandlerMapping에서 컨트롤러의 정보를 검색, 리턴받는다. 리턴받은정보를 DispatcherServlet은 HandlerAdapter에게 보내며 컨트롤러의 호출을 위임한다. HandlerAdapter는 Controller를 호출한다. (여기에서 JSON데이터가 DTO로 변환된다.) 컨트롤러가 로직 처리를 마치..
보호되어 있는 글입니다.
자바 ORM 표준 JPA 프로그래밍 김영한 엔티티 매핑 목차 @Entity @Table 다양한 매핑 사용 데이터베이스 스키마 자동 생성 DDL 생성 기능 기본키 매핑 필드와 컬럼 매핑 : 레퍼런스 정리 실전 예제 요구사항 분석과 기본 매핑 ✅ @Entity JPA를 사용해 테이블과 매핑할 클래스에 필수적으로 붙히는 어노테이션 @Entity를 붙히면 JPA가 관리하게 된다. 기본 생성자가 필수적이다. JPA는 엔티티 객체를 생성할 때 기본 생성자를 사용한다. 생성자가 하나도 없는 경우는 에러가 안나지만(자바가 자동으로 만들어서), 어떤 생성자를 하나 이상 만들게 되면 직접 기본 생성자를 만들어줘야한다. final, enum, interface, inner 클래스에는 사용불가 저장할 필드에 final을 사용..
✅ Category Entity에 사용되었던 어노테이션 리팩토링 이전에는 어노테이션이 무분별하게 사용되고 있었다. @Setter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Builder 잘 알지 못하고 마구 사용한 것을 반성하며 이것을 개선하기 위해 먼저 Setter와 AllArgs를 삭제했다. Entity 클래스이고, @id 컬럼의 GenerateType이 IDENTITY이기 때문에, AllArgs은 필요없다고 판단했고 Setter 역시 클래스 레벨에 사용하는게 좋지 못하다는 것을 들었고, 자유로운 객체 생성시엔 @Builder를 남기는게 맞다고 판단했다. 그렇게 @NoArgsConstructor(access = Ac..
✅ 이전 버전은.. 앞서 entitymanager를 직접 불러와 사용하는것 레포지토리르 2개나 만들어 사용한것 (서비스에 2개의 의존 레포지토리가 생겼다) https://jie0025.tistory.com/345 [Springboot][개발] FLAG - Category CRUD 1차 완성 (Merged) JIE0025 [Springboot][개발] FLAG - Category CRUD 1차 완성 (Merged) 본문 jie0025.tistory.com 예전에 스터디하면서 정리해놓은 글이 있어 해당 사용방법을 참고했다. https://jie0025.tistory.com/254 [Spring] QueryDSL 개인적으로 공부하면서 정리한 내용입니다 : ) FLAG Project - BE Study 2022..
✅ 개요 프로그램을 만들어 잘 동작하는지 확인하려고 System.out.println()도 많이 썼다. 또 디버깅을 통해 데이터의 흐름도 볼수있었다. 이런것들은 다 로그의 하나로 볼수있다. 그럼 로깅은 뭘까? 로깅은 운영중인 웹 어플리케이션의 문제 발생시- 원인을 파악하기 위한 정보를 의미한다. 배포환경에서도 잘 되는지 확인하기 위해 결국 로깅을 알아야한다. ✅ 로깅이란? 프로그램동작시 발생하는 모든 일을 기록하는 행위 ⏺ 모든 일 :: 개발자가 가져야하는 최소한의 목적 ✔️ 서비스의 동작상태 확인 시스템로딩 http통신 트랜잭션 db 요청 의도를 가진 Exception ✔️ 장애 i/o exception nullpointerexception... ⏺ 로그의 장점 출력형식 지정가능 로그레벨에 따라 남기고..
테스트 코드는 아직 어려워서, 요청메세지를 통한 테스트만 확실하게 진행한 상태로 컴밋을 진행하기 위해 코드를 기록한다. ✅ 테스트 완료 글 https://jie0025.tistory.com/338 [현재 상황 분석] 어디가 문제일지 & 앞으로 봐야할 부분들 찾기 JIE0025 [현재 상황 분석] 어디가 문제일지 & 앞으로 봐야할 부분들 찾기 본문 프로젝트 - FLAG/테스팅 [현재 상황 분석] 어디가 문제일지 & 앞으로 봐야할 부분들 찾기 Kangjieun11 2022. 12. 19. 23:36 jie0025.tistory.com https://jie0025.tistory.com/343 [Postman][5] PUT- 카테고리 수정(컨트롤러 요청메세지 테스트)(PATCH 안쓸거다 ㅜㅜ) JIE0025 [..