Peony의 기록 창고 🌼
article thumbnail
[Log] 로그 사용 이유, 로그 레벨
SpringBoot/Log 2025. 3. 1. 15:16

로깅이란 무엇일까 ?로깅이란 시스템이 동작할 때 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것을 의미한다. 로깅을 하는 이유로깅을 통해 얻을 수 있는 것개발 과정 혹은 개발 후에 발생할 수 있는 예상치 못한 애플리케이션의 문제를 진단다양한 정보를 수집 가능사용자 로그의 경우 분석 데이터로도 활용할 수 있다.하지만 로깅을 하는 단계에서 적절한 수준의 로그 기록 기준을 잡지 못하면 방대한 양의 로그 파일이 생성되는 문제를 겪거나, 의미 있는 로그를 쌓지 못하는 경우가 발생할 수 있다. 결국 효율적으로 로깅을 하는 방법을 이해하는 것이 중요하다. 그럼 로그 레벨 별 내용은 뭐가 다를까 ?⛔️Error⛔️예상하지 못한 심각한 문제가 발생하는 경우, 즉시 조취를 취해야 할 수준의 레벨 ⚠️Warni..

[SpringBoot] AWS S3 설정하기
카테고리 없음 2024. 6. 10. 15:44

의존성 받아오기//S3 implementation platform("io.awspring.cloud:spring-cloud-aws-dependencies:3.1.1") implementation("io.awspring.cloud:spring-cloud-aws-starter-s3:3.1.1") AWS Credentials Provider 구성하기스프링 클라우드 AWS에서 AWS Credentials Provider를 구성할 수 있는 방법은 3가지가 있다.기본 자격 증명 제공자 - `DefaultCredentialsProvider``StsWebIdentityTokenFileCredentialsProvider - EKS 권장사용자 지정 Aws 자격 증명 공급자 - Custom AwsCredentialsPr..

article thumbnail
Jwt.parserBuilder() Deprecated
프로젝트/Trouble Shooting 2024. 5. 23. 11:46

JWT 토큰 로직을 짜는 중 Gradle: io.jsonwebtoken:jjwt-api:0.12.5 버전에서Jwt.parserBuilder() Deprecated가 되었다고 뜬다.parserBuilder -> parser()setSigningKey(key) -> verifyWith(key)parseClaimsJws(token) -> parseSignedClaims(token)로 바꿔준다. 아래 코드는 다음과 같이 변경하면 된다. Jwts.builder() .expiration(new Date(now + REFRESH_TOKEN_EXPIRE_TIME)) .signWith(this.key) .compact();

[Part 02] 6. 스트림으로 데이터 수집
도서/Modern Java in Action 2024. 4. 22. 17:25

이 글은 모던 자바 인 액션 책을 읽고 정리한 내용입니다. http://www.yes24.com/Product/Goods/77125987 모던 자바 인 액션 - 예스24 자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화가 자바 8 이후 이어지고 있다. 자바 8 이후 모던 자바를 이용하면 기존의 자바 코드 모두 그대로 쓸 수 있으며, 새로운 기능과 문법, 디자인 패턴 www.yes24.com 컬렉터란 무엇인가 ? 고급 리듀싱 기능을 수행하는 컬렉터 함수형 API의 또다른 장점 : 높은 수준의 조합성, 재사용성 미리 정의된 컬렉터 Collectors에서 제공하는 메서드의 기능은 3가지로 구분할 수 있다. 스트림 요소를 하나의 값으로 리듀스 하고 요약 : 다양한 계산을 수행할 때 유용 요소 그룹화 : 다..

[Algorithm] 백준 1377번_버블_소트(Java)
Algorithm/백준 [BOJ] 2024. 3. 8. 16:58

🔗 1377번 버블 소트 https://www.acmicpc.net/problem/1377 1377번: 버블 소트 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 문제 버블 소트 알고리즘을 다음과 같이 C++로 작성했다. bool changed = false; for (int i=1; i

[Algorithm] 백준 1946번_신입_사원(Java)
Algorithm/백준 [BOJ] 2024. 1. 15. 20:32

🔗 1946번 신입 사원 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가..

[Algorithm] 백준 10610번_30(Java)
Algorithm/백준 [BOJ] 2024. 1. 15. 16:48

🔗 10610번 30 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르..

[Spring Security] Spring Security 6.1 : Security Config deprecated
SpringBoot/Spring Security 2023. 10. 9. 20:53

Springboot 3.1.0 환경에서 Spring Security로 인증 방식을 구현하던 중 FilterChain 등록 코드에서 deprecated 에러가 등장했다. 'csrf()' is deprecated and marked for removal Spring Security 6.1.0 SpringBoot 3.1.0 버전은 Spring Security 6.1.0 버전을 dependency 한다. Spring Security 6.1.0의 release note를 살펴보면 and()와 non-lambda DSL methods를 deprecating 했다고 나와있다. non-lambda DSL? Spring Security 5.2 release 부터 lambda DSL을 지원해왔었다. 다만 이번 releas..

[JPA 활용1] 웹 계층 개발
SpringBoot/JPA 활용1 2023. 9. 18. 20:05

타임리프 관련은 강의 내용에 있으니, 컨트롤러 부분만 정리해보았다. 홈 컨트롤러 등록 @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home() { log.info("home controller"); return "home"; } } 회원 등록, 조회 회원 등록 폼 객체 폼 객체를 사용해서 화면 계층과 서비스 계층을 명확하게 분리하자. @Getter @Setter public class MemberForm { @NotEmpty(message = "회원 이름은 필수 입니다") private String name; private String city; private String street; private..

[JPA 활용1] 주문 도메인 개발
SpringBoot/JPA 활용1 2023. 9. 18. 03:13

상품 도메인 기능 : 상품 등록, 목록 조회, 상품 수정 상품 도메인은 간단하니 생략하고 주문 도메인으로 넘어가보자. 주문 도메인 구현 기능 : 상품 주문, 주문 내역 조회, 주문 취소 주문 엔티티 @Entity @Getter @Setter @Table(name = "orders") public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) privat..