본문 바로가기

분류 전체보기60

SpringBoot AutoConfiguration 예시 소스를 먼저 본다. @Slf4j @Configuration public class DbConfig { @Bean public DataSource dataSource(){ log.info("dataSource 빈 등록"); HikariDataSource dataSource = new HikariDataSource(); dataSource.setDriverClassName("org.h2.Driver"); dataSource.setJdbcUrl("jdbc:h2:mem:test"); dataSource.setUsername("sa"); dataSource.setPassword(""); return dataSource; } @Bean public TransactionManager transactionMana.. 2023. 11. 6.
SpringBoot와 웹서버 스프링부트를 실무에서 쓰진 않지만 개인적으로 공부나 인강을 들을땐 계속 써왔어서 익숙하긴하지만 기존 레거시와 비교했을때 어떤점이 편리하고 어떤원리로 제공하는지는 잘 알지 못해서 김영한 강사님의 스프링부트의 원리활용 강의를 듣고 기록해본다. WAR 배포 방식의 단점 웹 애플리케이션을 개발하고 배포하려면 다음과 같은 과정을 거쳐야 한다. 톰캣 같은 웹 애플리케이션 서버(WAS)를 별도로 설치해야 한다. 애플리케이션 코드를 WAR로 빌드해야 한다. 빌드한 WAR 파일을 WAS에 배포해야 한다. 웹 애플리케이션을 구동하고 싶으면 웹 애플리케이션 서버를 별도로 설치해야 하는 구조이다. 과거에는 이렇게 웹 애플리케이션 서버와 웹 애플리케이션 빌드 파일(WAR)이 분리되어 있는것이 당연한 구조였다. 그런데 이런 방식.. 2023. 10. 31.
Enum enum은 열거형(enumerated type)이라고 부른다. 열거형은 서로 연관된 상수들의 집합이라고 할 수 있다. enum은 class, interface와 동급의 형식을 가지는 단위다. 하지만 enum은 사실상 class이다. 편의를 위해서 enum만을 위한 문법적 형식을 가지고 있기 때문에 구분하기 위해서 enum이라는 키워드를 사용하는 것이다. 예시 public enum Week { MONDAY("mon", 10), TUESDAY("tue", 20), WEDNESDAY("wed", 30), THURSDAY("thu", 40), FRIDAY("fri", 50), STURDAY("sat", 60), SUNDAY("sun", 70); private final String title; private f.. 2023. 10. 27.
Data Jpa 페이징 오늘은 Spring Data JPA에서 제공하는 페이징에 대해 복습한다. 내가 JPA를 공부하면서 가장 기억에남는 기능이 페이징관련한 인터페이스였다. 취업준비를 하면서 실무에서까지 리스트 페이징을 위해선 항상 공식화된 방법으로 클래스를 구성하고 쿼리를 짰던 것 같다. Data JPA에서 제공하는 페이징인터페이스를 사용하면 비즈니스로직에 필요한 쿼리만 정의하면 알아서 페이징 처리를 해주기 때문에 개발 향상성이 폭발적으로 증대되는것 같다. 예제를 구성해보았다. Order 와 Delivery에서 연관관계는 1:1이다 오더엔티티를 기준으로 left join 하였으며 order_id를 기준으로 내림차순 정렬한다. 이 쿼리를 페이징하기위해선 Pageable을 인자로 받고 Page로 래핑해서 리턴하면된다. 그러면 자.. 2023. 10. 12.