BackEnd : Spring/SpringBoot (22) 썸네일형 리스트형 [CI/CD] React.js + Spring Boot 웹 서비스 Docker, Github Action으로 EC2에 자동 배포하기 - 1. Nginx 이번 시간에는 Docker와 Github Action을 사용하여 React.js와 Spring Boot 웹 서비스를 CI/CD로 자동 배포하는 파이프라인을 다뤄보도록 하겠습니다.각 단계에서 발생한 트러블슈팅 내용들을 보다 상세히 작성하기 위해 몇 개의 글로 나누어 업로드할 예정입니다!배포 전략 선택 배경이전 프로젝트에서는 AWS S3, Codedeploy 까지 이용한 CI/CD 배포 파이프라인을 구축했었습니다.https://nymagicshop16.tistory.com/112 [AWS] SpringBoot 프로젝트 AWS CodeDeploy + S3 + Github Actions를 이용하여 CI/CD 구축, Docker + EC2 + RDS 로 배포프로젝트 아키텍처1. EC2 서버 만들기참고한 글 : h.. [Spring] 객체 지향 설계와 스프링 Spring Boot스프링을 편리하게 사용할 수 있도록 지원단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨손쉬운 빌드 구성을 위한 starter 종속성 제공스프링과 3rd path 라이브러리 자동 구성메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공관례에 의한 간결한 설정스프링의 진짜 핵심스프링은 자바 언어 기반의 프레임워크자바 언어의 가장 큰 특징 : 객체 지향 언어스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크좋은 객체 지향 프로그램이란?객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 .. [SpringBoot] JPA @ColumnDefault, @Builder.Default @DynamicInsert@Getter@Entity@Table(name="MemoryStar")@Builder@NoArgsConstructor@AllArgsConstructor@EntityListeners(AuditingEntityListener.class)public class MemoryStar { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long memory_id; @OneToOne @JoinColumn(name = "star_id", nullable = true) @OnDelete(action = OnDeleteAction.SET_NULL) private StarList starList.. [Spring Boot] 영속성 컨텍스트 / 엔티티 값 update 하기 유저 탈퇴 기능을 개발하면서 유저 탈퇴 시 unactivated로 처리하기 위해 엔티티 값을 update하는 로직을 구현하였다.기존 코드save() 를 통해 기존의 엔티티 값 수정@PostMapping("/quit") public void quit() { Optional userWithAuth = userService.getUserWithAuthorities(); if (userWithAuth.isPresent()) { User user = userWithAuth.get(); user.setActivated(false); userRepository.save(user); } }엔티티를 수정한 후, s.. [SpringBoot] JpaRepository @Modifying, @Transactional public interface RecCampListRepository extends JpaRepository { @Query("SELECT rc FROM RecCampList rc WHERE rc.user.id = :userId") List getByUser(@Param("userId") String userId); @Query("SELECT rc FROM RecCampList rc WHERE rc.doNm = :doNm and rc.user.id = :userId") List getByDoNmAndUser(@Param("userId") String userId, @Param("doNm") String doNm); @Modifying @Transactional @Qu.. [TalentTree 프로젝트] HttpSession : 로그인된 사용자 정보 가져오기 HttpSession을 사용하게 된 배경원래 스프링 프로젝트에서 로그인, 로그아웃에서 사용자 정보를 관리하는 것을 Spring Security를 쓰곤 한다.이 프로젝트 개발 기간이 짧기도 했고, 최초 로그인 시 회원가입으로 구현하기로 하여 세션에 로그인된 사용자 정보를 담기로 했다.LoginController로그인과 관련된 로직을 처리하는 Controller이다.@Controller@RequiredArgsConstructorpublic class LoginController { private static String UPLOAD_DIR = System.getProperty("user.dir") + "/src/main/resources/static/bootstrap/assets/uploads"; .. [Springboot] 연관관계 매핑 : 일대일 연관관계 매핑 종류One To One : 일대일One To Many : 일대다Many To One : 다대일Many To Many : 다대다연관관계 매핑 방향단방향 : 두 엔티티의 관계에서 한쪽의 엔티티만 참조하는 형식양방향 : 두 엔티티의 관계에서 각 엔티티가 서로의 엔티티를 참조하는 형식일대일 매핑1. 일대일 단방향 매핑BaseEntity@Getter@Setter@ToString@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public class BaseEntity { @CreatedDate @Column(updatable = false) private LocalDateTime createdAt; @LastModi.. [Springboot] SpringBoot 3.x maven+ QueryDSL 설정하기 pom.xml 5.0.0 com.querydsl querydsl-apt ${querydsl.version} jakarta com.querydsl querydsl-jpa jakarta ${querydsl.version} com.querydsl querydsl-core 5.0.0 기존의 공식문서를 참고하면 plugin도 추가해주어야 하는데, 여러번의 오류와 서치 끝에 spring boot 3 이상 버전과 java 17 이후로 jakarta에서 plugin이 deprecated 되었다는 정보를 확인하였다.https://samori.tistory.com/60 Querydsl + Spring 3.0 + Java17 업데이트 내용! [Maven+Gra.. 이전 1 2 3 다음 목록 더보기