일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 빌드스크립트
- 롬북
- 어노테이션
- CICD
- 정보처리기사필기
- 무중단배포
- 완전탐색알고리즘
- 정처기필기
- 프로그래머스
- PULL방식아키텍쳐
- 정처기
- java
- Java8
- Docker
- 롬복사용시주의할점
- controller
- 알고리즘
- 시계열디비
- 롬복
- spring
- aws
- API
- 자바
- Groovy문법
- 서버
- git
- 정처기공부
- 빌드자동화도구
- 정보처리기사
- 생성자
- Today
- Total
목록java (6)
우당탕탕 개발일지
멋사 수업이 끝난 뒤 지금까지 해왔던 프로젝트를 정리하고 리팩토링하던 중초반에 사용했던 프로젝트와 현재 진행중인 프로젝트의 JDK 버전이 달라 프로젝트 리팩토링 시 문제가 생겼다...초반 프로젝트는 java11 , 현재 프로젝트는 java17...JAVA_HOME 환경변수는 이미 java17로 셋팅되어있는 상태이기 때문에 java11 프로젝트를 열면 JDK 설정에서 멈춤 상태로 프로젝트가 열리지 않았다 :-( 매번 JAVA_HOME의 경로를 변경하여 11, 17 를 왔다갔다 할 수도 없기 때문에 폭풍 검색!스크립트를 작성하여 시스템 환경변수 path에 적용하면 cmd 명령어로 JAVA_HOME의 JDK를 변경할 수 있었다.해당 내용을 까먹지 않도록 포스팅윈도우 JAVA 버전 관리우선, 난 초반에 java..
@Valid JSR-303 표준 스펙(자바 진영 스펙)으로서 빈 검증기(Bean Validator)를 이용해 객체의 제약 조건을 검증하도록 지시하는 애노테이션이다. 객체의 필드에 달린 애노테이션으로 편리하게 유효성검사를 제공한다. Spring Boot에서는 아래의 의존성만 추가해주면 @Valid 기능을 사용할 수 있다. implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation' Service에서 검증로직을 작성하여 확인할 수 있지만, DTO 또는 객체를 검증해야할 때 별도로 검증 클래스를 만들어 사용하는 것이 아니라 @Valid 애노테이션을 사용하여 간단하게 검증할 수 있다. 🔍 java.validatio..
JWT(JSON Web Token) 당사자 간에 정보를 JSON 형태로 안전하게 전송하기 위한 토큰 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미 URL로 이용할 수 있는 문자열로만 구성 → HTTP 구성요소 어디든 위치할 수 있음 디지털 서명이 적용돼 있어 신뢰할 수 있음 서버와의 통신에서 권한 인가를 위해 사용 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식 🌈 JWT 구조 JWT는 점(’.’)으로 구분된 아래의 세 부분으로 구성됨 헤더(Header) 검증과 관련된 내용을 담고 있음 완성된 헤더는 Base64Url 형식으로 인코딩 되어 사용됨 속성 alg : 해싱 알고리즘 지정 SHA256, RSA을 주로 사용하며, 토큰을 검..
@RequiredArgsConstructor Spring 사용 시 final 로 DI(의존성주입)를 할 때 필요한 객체를 선언하여 생성자를 만들어주어야 함 이때, 생성자 코드를 직접 작성하는 것이 아니라 @RequiredArgsConstructor 어노테이션을 사용하여 자동으로 설정 👀 실습코드 👉 @RequiredArgsConstructor 사용 전 (생성자 추가 필요) 1 2 3 4 5 6 7 8 9 10 11 @RestController @RequestMapping("/api/v1/reviews") @Slf4j public class ReviewController { private final ReviewService reviewService; public ReviewController(ReviewS..
도커는 컨테이너 기술을 기반으로 하는 일종의 가상화 플랫폼이다. 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈 프로젝트 / 기존에 쓰이던 가상화 방법인 가상 머신(VirturalBox, VMware 등) 보다 성능의 손실이 훨 씬 덜하다. 📚 가상화 vs 컨테이너 가상 머신(VirturalBox, VMware 등) 하나의 하드웨어에 여러 개의 가상 머신으로 분할해 효율적으로 사용할 수 있는 기술 분할 된 가상 머신들은 각각 독립적인 환경으로 구동됨 기존 환경( Host OS ) 분할 된 각각의 환경( Guest OS ) Guest OS는 하이퍼바이저에 의해 생성되고 관리됨 → 항상 하이퍼바이저를 거쳐야함 속도 저하, 가상 머신 배포 시 이..
🌈 Optional 개발 시 가장 많이 발생하는 예외인 NPE(NullPointerException)을 피하기 위해 Null 여부를 검사하는데 Null 검사를 해야하는 변수가 많아 질 경우 코드가 복잡해지고 많아진다. 그래서 Null 대신 초기값을 사용하길 권장하는데 이 때, 사용하는 것을 Optional 이라고 한다.JAVA8 부터 Optional 클래스를 사용해 NPE를 방지할 수 있도록 도와줌Optional 클래스는 제너릭(Generic)으로 값의 타입을 지정Optional 클래스는 Null이 올 수 있는 값을 감싸는 래퍼(Wrapper) 클래스Null 이더라도 바로 NPE가 발생하지 않음 👉 NPE(NullPointerException)를 방지클래스이기 때문에 각종 메소드를 제공해줌.orEl..