분류 전체보기
-
엘리스 Cloud 트랙 수료 후기!엘리스트랙 2024. 6. 4. 20:55
6개월간의 Cloud 트랙 1기를 수료하고 후기를 써보겠습니다.엘리스 Cloud 트랙은 국비지원 백엔드 부트캠프로, Java와 Spring 프레임워크를 중심으로 백엔드 개발 역량을 집중적으로 키울 수 있는 프로그램인 것 같다.저는 전공자지만 스프링은 하나도 모르는 상태였고 그냥 학교에서 배우는 이것저것 경험이랑 잠깐 인턴을 하며 Django를 써본 게 다인 상태였는데 수료를 한 지금 상태는 백엔드 개발자가 될 수 있을 것 같다는 생각이 들었다. 커리큘럼 하지만 전공자라서 실력이 늘은 것이 아니고 엘리스의 커리큘럼은 자바 기초부터 Git, Spring Boot, JPA, Spring Security, Docker, AWS까지 백엔드에 필요한 기술들을 알려줘서 비전공자도 열심히 하면 따라갈 수..
-
최종 프로젝트 후기!엘리스트랙 2024. 5. 12. 12:27
http://santa-front.s3-website.ap-northeast-2.amazonaws.comSANTA 프로젝트의 완성본이 나왔다. 프로젝트의 결과를 보면서 소개해보겠다 웹 사이트에 들어가면 피그마에서 계획한 ui대로 제작이 되어있다. 협업은 디스코드를 통해 매일 오전 10시 30분 스크럼을 진행했으며 모르는 내용이 생기거나 문제가 생기면 수시로 디스코드를 통해 회의를 진행했고 노션에 내용을 정리해 두었다. 시스템의 구조는 젠킨스로 CI/CD를 해놔서 작업 내용을 푸시하면 젠킨스가 실행 중인 서버에서 파이프라인을 통해 jar파일을 빌드 후배포 서버에 보내 실행시키는 구조이고 프론트는 깃랩 러너를 통해 CI/CD가 되어 있고 프론트 서버에서 백엔드 서버로 요청을 보내면엔진엑..
-
최종 프로젝트 개발6카테고리 없음 2024. 5. 5. 23:40
필요한 api들을 다 개발해 놓고 시간적 여유가 돼서 jenkins로 ci/cd도 하고 싶어졌다. 도커 이미지를 통해 젠킨스를 빌드하고 {vm 주소}:8080으로 접속해 젠킨스 접속을 하였다. 접속 과정을 남겨놓지 않아서 사진이 없는데 접속 과정에서 docker logs jenkins로 패스워드 값을 복사해 입력해주고 계정 설정과 플러그인 설치를 해야 한다. 자바 sdk, git, gradle 환경설정을 해주고 우리는 ec2 환경에서 배포를 하고 있기 때문에 젠킨스를 사용하는 vm과 ec2와의 연결을 위해 ssh rsa 키 설정을 해주어야 된다. docker exec -it jenkins /bin/bash로 들어가 ssh-keygen -t rsa -b 4096 -m PEM으로 키를 생성해 주고 cd /..
-
최종 프로젝트 개발5엘리스트랙 2024. 5. 5. 22:40
유저, 모임, 챌린지에서 이미지 업로드를 해주어야 돼서 이미지 업로드 기능을 구현하였다.https://innovation123.tistory.com/197 [Spring / S3] SpringBoot 프로젝트 - S3 이미지 업로드이전 글에서 S3 bucket과 IAM을 생성하고 SpringBoot project에서 S3 접근에 사용할 accessKey와 secretKey를 얻는 것까지 다뤘다. 2024.01.21 - [DevOps] - [AWS/S3] Spring boot project 이미지 업로드를 위해 S3 버켓 만들기 [innovation123.tistory.com이 블로그를 참고했는데 큰 도움이 되었다. @Slf4j@RequiredArgsConstructor@Componentpublic ..
-
최종 프로젝트 개발4엘리스트랙 2024. 5. 5. 22:24
모임을 조회할 때 페이지네이션 처리를 해주어야 되는데 데이터가 많으면 뒤쪽의 페이지를 받아올 때 앞의 데이터들을 다 확인하고 넘겨야 돼서 속도가 느려진다는 것을 보았다.그래서 그걸 방지하는 방법으로 no-offset 방식을 알게 되었는데 no-offset 방식은 마지막으로 조회한 데이터의 마지막 ID나 시간과 같은 특정 값을 기준으로 다음 페이지의 데이터를 조회한다. 예를 들어, 어떤 데이터의 마지막 ID가 100이라면, ID가 101부터 시작하는 데이터를 다음 페이지로 조회한다. @GetMapping public ResponseEntity getAllMeetings(@RequestParam(name = "lastId", required = false) Long lastId, ..
-
최종 프로젝트 개발3엘리스트랙 2024. 4. 28. 14:53
에러처리를 할 때 한 번에 처리해 주기 위해 예외처리 코드를 넣어주었다. @ControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(ServiceLogicException.class) public ResponseEntity handleServiceLogicException(ServiceLogicException ex) { ExceptionCode code = ex.getExceptionCode(); ErrorResponse errorResponse = new ErrorResponse(code.getStatus(), ex.getMessage()); return new ResponseEnt..
-
최종 프로젝트 개발2엘리스트랙 2024. 4. 28. 14:20
이제 모임을 생성하기 위해 엔티티를 만들어주자 @Entity@Builder@NoArgsConstructor@AllArgsConstructor@Setter@Getterpublic class Meeting extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NotBlank(message = "모임 이름을 입력하세요.") private String meetingName; private String mountainName; @NotBlank(message = "상세 설명을 입력하세요.") private String description; @Not..
-
최종 프로젝트 개발1엘리스트랙 2024. 4. 28. 13:36
도메인별로 역할을 나누기로 했는데 모임 부분을 맡기로 했다. 모임에 대한 엔티티를 작성하려고 했는데 모임에 카테고리 선택도 들어가야 해서 먼저 카테고리를 생성해 주었다. @Entity@Getter@Setter@NoArgsConstructor@AllArgsConstructorpublic class Category { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) @NotBlank(message = "카테고리를 입력하세요.") public String name;} @RestController@RequestMapping("/categories")pu..