Peony의 기록 창고 🌼
[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
Spring/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] 웹 계층 개발
Spring/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] 주문 도메인 개발
Spring/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..

article thumbnail
[JPA 활용1] 회원 도메인 개발
Spring/JPA 활용1 2023. 9. 14. 01:25

애플리케이션 아키텍처 계층형 구조 사용 controller, web: 웹 계층 service: 비즈니스 로직, 트랜잭션 처리 repository: JPA를 직접 사용하는 계층, 엔티티 매니저 사용 domain: 엔티티가 모여 있는 계층, 모든 계층에서 사용 패키지 구조 jpabook.jpashop domain exception repository service web 개발 순서: 서비스, 리포지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증, 마지막에 웹 계층 적용 회원 리포지토리 @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; public void save(Membe..

article thumbnail
[JPA 활용1] 도메인 분석 설계 & 구현 준비
Spring/JPA 활용1 2023. 9. 13. 17:00

실제 동작하는 화면은 다음과 같다. 기능 목록 회원 - 등록, 조회 상품 - 등록, 수정, 조회 주문 - 주문, 주문 내역 조회, 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 상품 주문시 배송 정보를 입력할 수 있다. 도메인 분석 설계 도메인 모델과 테이블 설계 도메인 모델 회원, 주문, 상품의 관계 : 회원은 여러 상품을 주문할 수 있다. 그리고 한 번 주문할 때 여러 상품을 선택할 수 있으므로 주문과 상품은 다대다 관계다. 따라서 그림처럼 주문상품이라는 엔티티를 추가해서 다대다 관계를 일대 다, 다대일 관계로 풀어냈다. 다만, 카테고리와 상품은 경험을 위해 다대다로 두었다. 상품 분류 : 도서, 음반, 영화는 상..

article thumbnail
[JPA 활용1] 프로젝트 환경설정
Spring/JPA 활용1 2023. 9. 12. 00:51

프로젝트 환경설정 https://start.spring.io/ Dependencies spring-boot-starter-web 톰캣, 스프링 웹 MVC 등 지원 spring-boot-starter-thymeleaf 뷰 단을 SSR로 제공하는 타임리프 템플릿 엔진 Spring-boot-starter-data-jpa aop, jdbc (HikariCP 커넥션 풀), 하이버네이트 , 스프링 데이터 jpa 등 지원 spring-boot-starter(공통) 스프링 부트 + 스프링 코어 + 로깅 등 지원 테스트 라이브러리 spring-boot-starter-test junit, mockito, assertj, spring-test 핵심 라이브러리 스프링 MVC 스프링 ORM JPA, 하이버네이트 스프링 데이터 ..