목록Spring (11)
거누의 개발노트
현재 아래와 같이 작성되어있는 코드를 QueryDSL을 이용해서 분기처리를 최소화하고, MySQL Full Text Search를 적용해보려고 한다. @Transactional public PageBoardResponseDto getBoardList(FilterEnum filter, String keyword, Pageable pageable, String email, SubEnum sub) { Page boardPage; if(sub.equals(SubEnum.title)){ if(Objects.equals(filter, FilterEnum.challenge)) { log.info("title, challenge search"); boardPage = boardRepository.findByTitleC..
프로젝트가 진행되고 일주일이 지나서야 블로그를 적을 시간이 났다. 내가 맡은 기능은 로그인/회원가입, 소셜 로그인/회원가입 기능을 맡았다. 많은 구글페이지를 찾아봤지만, 아래만한 곳이 없었다. https://deeplify.dev/back-end/spring/oauth2-social-login#%EC%A0%84%EC%B2%B4-%EC%8B%9C%ED%80%80%EC%8A%A4-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8 [Spring Boot] OAuth2 소셜 로그인 가이드 (구글, 페이스북, 네이버, 카카오) 스프링부트를 이용하여 구글, 페이스북, 네이버, 카카오 OAuth2 로그인 구현하는 방법에 대해서 소개합니다. deeplify.dev 해당 블로그를 클론 코..
Github Action을 이용해서 Spring Boot(Gradle) 웹 어플리케이션을 자동으로 빌드해주는 과적을 작성하려고 한다. 매번 build를 하고, 빌드된 jar파일을 EC2 서버에 접근해서 올리는 번거로운 작업이 사라지게 되어서 개발에만 집중할 수 있게 된다. [S3 버킷 만들기] 이름만 정하고 나머지는 기본 설정값으로 만들기 [AWS IAM 사용자 만들기] - 권한추가하기 AmazonS3FullAccess AWSCodeDeployFullAccess AWSCodeDeployRole 권한 위에 3개 추가 키 잘 저장해 놓기 [AWS IAM 역할 만들기] 1. CodeDeploy 용 역할 AWSCodeDeployRole 2. EC2 용 역할 AmazonS3FullAccess AWSCodeDepl..
스프링 컨테이너와 빈 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 한다. 여기서 말하는 자바 객체를 스프링에서는 빈(Bean)이라고 부른다. 저번에 공부했던 IoC와 DI의 원리가 이 스프링 컨테이너에 적용된다. 개발자는 new 연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸시킬 수 있는데, 스프링 컨테이너가 이 역할을 대신해 준다. 스프링 컨테이너의 종류 BeanFactory BeanFactory는 빈을 등록하고 생성하고 조회하고 돌려주는 등 빈을 관리하는 역할을 한다. 빈을 추가할 때는 이런식으로 추가합니다. @Configuration public class AppConfig { @Bean public OrderS..
Spring boot에서 DI를 사용하게된 이유를 알려면 강한결합과 느슨한결합에 대해서 알아야한다. 강합결합과 느슨한결합 중 강한 결합은 문제가 있는데, 어떤 문제인지 예제를 통해서 알아보면 먼저 Controller1에서 Service1 객체를 생성해서 사용했다. public class Controller1 { private final Service1 service1; public Controller1() { this.service1 = new Service1(); } } 그리고 Service1은 Repository1 객체를 생성해서 사용했다. public class Controller1 { private final Service1 service1; public Controller1() { this.se..
Controller, Service, Repository를 알기전에는 MVC 패턴에 대해서 이해해야 한다. https://geonoo.tistory.com/148 [Spring] MVC 패턴 (ORM, SQL) - 회고 Spring 프레임워크로 간단한 웹 서버를 구현해 보고있다. 처음으로 JPA를 사용해봤고 정리해봤다. https://geonoo.tistory.com/147?category=1077864 [Spring] Java Persistence API - JPA Java Persistence API(.. geonoo.tistory.com MVC패턴에 대해서 간략이 정리해 봤고, 그럼 MVC 패턴을 사용하는 이유는 무엇일까? 결론 역할에 따른 분리로 인해서 유지보수성, 확장성, 유연성이 증가하고, ..
1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 2. 도메인 객체 생성 @Getter @NoArgsConstructor @Entity public class Comment extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String comment; @Column(nullable = false) private Long postId; public Comment(CommentDto commentDto){ this.comment =..
Spring 프레임워크로 간단한 웹 서버를 구현해 보고있다. 처음으로 JPA를 사용해봤고 정리해봤다. https://geonoo.tistory.com/147?category=1077864 [Spring] Java Persistence API - JPA Java Persistence API(JPA) JPA는 현재 자바 진영의 ORM 기술 표준으로, 인터페이스의 모음이다. 실제로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. Persistence(영속 geonoo.tistory.com ORM은 RDB의 테이블을 객체로 매핑하는 기술로 해당 기술을 이용한 대표적인 라이브러리가 JPA가 있다. 쉽게 설명해서 웹 서비스를 개발 할 때 SQL문을 필수적으로 작성해야 했다. 데이터베..