| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바
- 멀티 쓰레드
- lambda
- 도커 엔진
- Thread
- 쿠버네티스
- container
- 스레드
- 컨테이너
- 동시성
- java
- RDB
- 김영한
- 인프런
- 자료구조
- 람다
- Kubernetes
- 데이터베이스
- Docker
- 자바 입출력 스트림
- Java IO
- 쓰레드
- 스트림
- 함수형 인터페이스
- SQL
- 알고리즘
- 시작하세요 도커 & 쿠버네티스
- 도커
- mysql
- 실전 자바 고급 1편
- Today
- Total
목록Spring Project (18)
쌩로그
롬복 라이브러리의 @Value(참고로 GPT가 알려줌)모든 필드가 final이 되고, 불변선언된 모든 필드가 자동으로 final이 되어 불변 객체로 작동합니다.모든 필드에 대해 private final 생성기본 접근 제어자는 private이고, 필드는 final로 선언됩니다.생성자 자동 생성:모든 final 필드를 포함하는 생성자를 자동으로 생성합니다.Getter 메서드 생성모든 필드에 대해 Getter 메서드를 자동으로 생성합니다.equals(), hashCode(), toString() 자동 생성모든 필드를 기반으로 equals(), hashCode() 및 toString() 메서드를 생성합니다.Setter 메서드 없음불변성을 유지하기 위해 Setter 메서드는 생성되지 않습니다.+ 참고 하나 더@V..
2024 스프링 캠프 영상 https://m.youtube.com/playlist?list=PLdHtZnJh1KdY3gEi7EPa2AuWn5NKRVmDf&si=e0rRNKwcE9l0PzWV
목록포스팅 개요본록요약1. 포스팅 개요이전부터 yml을 통해서 애플리케이션의 값들을 세팅했고, local, dev, prod 와 같이 프로필을 나눠서 yml을 작성했다.그런데 사내 프로젝트를 진행하면서,local의 yml과 dev의 yml을 나눴다.local에는 값이 존재하고, dev에는 작성하지 않은 값이 있었다."당연히 dev에선 안 나오겠지"하고 생각했지만, 값이 나오는 것을 확인했고, 해당 값은 local에 대한 값이었다.이를 이해하여 정리하고자 하는 포스팅이다.2. 본론먼저 yml 테스트를 위해 작성한 클래스들을 살펴보면 다음과 같이 했다. @ConfigurationPropertiesScan 애너테이션이 있는데, 이 애너테이션이 선언되어 있어야 @ConfigurationProperties 애너..
목록포스팅 개요본론요약1. 포스팅 개요Oauth 2.0를 활용한 구글 로그인의 redirect-url에 대해서 정리해보고자 한다.사실 사내 프로젝트에 대한 회고글을 쓰기 시작했는데, 어떤 부분을 배웠는지 작성하는 중 해당 파트를 쓰다보니 개별로 글을 작성해도 될 거 같아 써본다.2. 본론구글의 OAuth2.0 로그인을 활용하기 위해서 구글 API 콘솔을 통해서 사용자 및 설정에서 redirect-url을 설정한다.내가 이전에 프로젝트 할 때 블로깅을 했을 때 구글에서 설정한 redirect-url과 yml에서 설정되어있는 redirect-url은 redirect 되는 url이 아니라,단순히 리소스 서버인 구글과 웹 애플리케이션 서버(구글 입장에선 클라이언트)간의 검증을 위한 값이라고 했었는데 아니었다...
목록 포스팅 개요 본론 2-1. 문제 인식 배경  2-2. 문제 발생의 원인 2-3. 문제 발생을 일으키게 된 이유 요약 1. 포스팅 개요 해당 포스팅은 제목과 같이 JPA Entity에서 외래 키와 참조를 맺는 @JoinColumn 애너테이션에 대한 오개념을 바로잡기 위한 포스팅이다. 2. 본론 2-1. 문제 인식 배경 현재 회사에서 진행 중인 프로젝트는 여러 사용자가 하나의 데이터에 접근해서 수정할 수도 있고, 삭제할 수도 있다. 즉, A 사용자가 생성하고 B 사용자가 수정했다가 C 사용자가 삭제할 수도 있는 구조다. (사내 서비스라 요구사항이 이렇다.) 따라서 학습차원에서 했던 프로젝트처럼 어떤 게시물에 대해서 작성자만 접근할 수 있는 구조가 아니라서 생성날짜 및 수정날짜보단 누가 데이터를 ..
목록 포스팅 개요 본론 2-1. UUID가 왜 필요한가? 2-2. UUID가 뭔데? 2-3. 코드로 살펴보기 요약 1. 포스팅 개요 해당 포스팅은 JPA 를 사용하면서 Entity 의 Id 값으로, Auto Increment가 아닌, 랜덤 문자열을 가지는 UUID로 사용하는 내용에 대한 포스팅이다. 2. 본론 2-1. UUID가 왜 필요한가? 늘 JPA를 어떤 CRUD 연습용이던가, 혹은 프로젝트를 할 때 로컬환경에서도, 배포환경에서도 MySQL의 기본 키 전략에는 Auto Increment를 적용하여, 알아서 id값이 할당받도록 하였다. 그런데 이번에 회사에서 프로젝트를 하면서 id를 Auto Increment 로만 의존하기에는 한계가 생길 것 같아 Id 깂으로 UUID의 값을 집어넣으려 한다. 예를 ..
목록 포스팅 개요 본론 2-1. @Builder 선언하기 2-2. 생성되는 생성자 코드 비교하기 2-3. 이제 진짜 이유 2-4. 빌더 패턴 요약 1. 포스팅 개요 List list = new ArrayList();예전에 @Builder를 클래스레벨에 선언하고, 사용하다가 위와 같이 Entity에서 선언한 List타입 객체를 호출하려 했을 때 초기화가 원활하게 일어나지 않아서 문제가 된 글을 포스팅한 적이 있다. 이 글이다. 지금 확인해보니 문제에 대한 원인을 정확히 파악하지 못 한 상태에서 글을 썼고, 오히려 나의 무지만... 드러낸 글이다.. 문제되는 글은 이 문장인데.. 클래스 레벨에 @Builder를 붙였기 때문에, 인스턴스 초기화시 모든 선언된 변수들은 각 타입의 기본값으로 들어간다. 헷갈린 내..
목록 포스팅 개요 본론 2-1. AWS S3의 파일에 대한 정보를 얻는 클래스 2-2. AWS S3 서비스 클래스 2-3. AWS S3 Configuration 클래스 요약 1. 포스팅 개요 AWS S3를 이용해서 파일 업로드를 구현해야 하는 일이 있었고, 구글링과 Chat GPT를 통해 구현하여 사용한 코드들이다. 그 코드를 재사용하기 위해 기록하는 포스팅이다. 2. 본론 AWS S3의 파일 업로드를 위해 필요한 클래스들에 대한 예시 코드이다. 2-1. AWS S3의 파일에 대한 정보를 얻는 클래스 @Getter public class FileInfo { UrlResource urlResource; // S3 파일 Url String contentDisposition; // HTTP 응답 헤더 중 하나..
목록 포스팅 개요 본론 및 요약 1. 포스팅 개요 스프링 사용시 @Transactional 애너테이션을 사용하면, 두 패키지가 나오는데 제가 잘 못 쓰고 있었습니다. 그에 대한 기록을 위한 포스팅입니다. 2. 본론 및 요약 인텔리 제이에서 쉬프트를 두번 누르면, 클래스 파일을 검색할 수 있는데, 두 가지가 나옵니다. 하나는 javax.transaction 패키지의 애너테이션이고, 하나는 org.springframework.transaction.annotation 애너테이션입니다. 결론적으로는 아래의 애너테이션을 사용해야 합니다. JPA를 쓰고, JPA는 javax 패키지의 클래스들이 표준이니, 당연하게도 javax 패키지의 @Transactional을 사용했는데, 개발시 정상적으로 작동하면 commit하..
목록 포스팅 개요 본론 요약 1. 포스팅 개요 실무에서 Vue와 SpringBoot를 이용해서 파일을 업로드해야하는 상황이 있었습니다. 처음 시도해봤었는데, 적용했고, 잊지않고자 기록합니다. 정말 간단히 세팅했고, Controller로만 확인해보도록 하겠습니다. 참고로 프로젝트 시작시에 일어나는 에러가 있긴했습니다. yml에 아무것도 추가하지 않고, 최소한으로 시도하려 했습니다만, log를 사용하기로 했는데, 로깅 레벨을 추가하지 않거나, database를 사용한다고 gradle에 추가해놓고, database 정보를 주지 않거나, 혹은 Spring Security를 추가했는데, 프론트에서 백으로 403 에러가 나는 부분이 있었지만, yml에 파일 설정을 더해줬고, Spring Security는 gradl..