5주차 회고에 앞서 이번주는 3차 데모데이에 필요한 기능을 구현하는 일정을 위주로 진행했다. 3차 데모데이 요구사항인 HTTPS 적용 및 WS + WAS 연결을 통해 443 포트로 데모, DB 테이블 drop 막기 등을 완료했고, 3차 데모데이의 핵심 기능인 리마인더 기능과 반려 식물과 관련된 기능 개발을 진행했다. 완료한 기능들은 모두 피움 팀 기술 블로그에 게시하였다. 캠퍼스 이동 이번 5주차를 기점으로 캠퍼스 이동을 했고, 월요일부터 선릉 캠퍼스로 출근했다. 선릉으로 캠퍼스를 이동하기 전에 팀원들과 자리에 대해 걱정을 좀 했었는데,,, 다행스럽게도 랜딩 강의장을 사용할 수 있게 되었다 ! 이 날 하마드가 자리를 뽑으러 갔는데, 오늘의 운세까지 확인하고 갔다 ㅋㅋㅋ 하마드 기세 덕분에 랜딩 강의장에 ..
4주 차 회고에 앞서 이번주는 2차 데모데이를 중심으로 일정을 진행했다. 2차 데모데이까지 목표한 API 개발을 완료했고, CI/CD, CORS, 프론트 배포와 같은 프로젝트 전반적인 설정도 모두 완료했다. 이번 데모데이는 클린과 조이가 발표를 담당했다. 역시 우리 팀원들 답게 너무너무 잘해줘서 무사히 마칠 수 있었다 ! 이번 데모데이를 마치고 팀 회식도 함께 진행했다. 메인페이지 이번주에 가장 먼저 배포된 페이지는 메인 페이지였다. 메인 페이지에서는 사전 식물을 검색할 수 있다. 사전 식물이란 'Dictionary-Plant' 즉, 식물 도감을 의미하며 원하는 식물을 검색하여 정보를 얻을 수 있다. 현재 데이터베이스에는 200개 이상의 식물 데이터가 추가되어 있는데 점점 더 늘려갈 계획이다. (절대 포..
이번 피움 서비스에서 CI/CD를 적용하기 위해 Jekins와 Github Webhook을 이용했습니다. 본 글에서는 Jenkins와 Github Webhook을 이용한 SpringBoot 서버 자동 빌드, 자동 배포 과정을 다루겠습니다. Jenkins 설치 과정은 피움 팀 블로그 를 참고하시면 됩니다 ! 작업 환경 - 인스턴스: AWS EC2 t4g.small - OS: Ubuntu 22.04.2 LTS - RAM: 2GB Jenkins 접속 젠킨스를 접속하는 방법은 간단합니다. 젠킨스를 설치한 인스턴스 public IP와 port를 주소창에 입력하면 쉽게 접근할 수 있습니다. 정상적으로 접속하면 다음과 같은 화면을 만나게 됩니다. Github Webhook 설정 먼저 Webhook을 설정하기 위해 현..
3주 차 회고에 앞서 이번주는 2차 데모데이까지 구현할 API 명세 작성을 완성하고, 운영서버와 배포서버 EC2 인스턴스 생성했다. 또한 배포 서버에 CI/CD를 구축하고 본격적인 백엔드 개발에 착수했다. 1주 차, 2주 차 보다 회의 빈도가 많이 줄었기 때문에, 개발에 집중할 수 있는 시간이 상대적으로 많았다. 그리고 피움팀에서 키우는 식물이 생겼다! 강의장에 불이 안 들어와서 식물 전용 전등도 사고 물도 주고 재미나게 키우고 있다! 이름이 기영, 기철인 이유는 검정고무신 기영이 머리를 닮아서 그렇게 지었다. 스투키가 기영이를 닮았는데 둘이 같은 날에 왔기 때문에 그냥 기철이로 했다 ~ Github Discussion 도입 회의에서 의견을 조율하는 과정을 기록으로 남겨보는 것이 어떨까라는 의견이 나왔다..
nullable = false ?? JPA를 이용해 엔티티를 설계하다가 @NotNull 어노테이션과 @Column의 nullable=false의 차이점이 궁금해져 알아보았습니다. JPA는 엔티티를 매핑하고 설계하면 자동으로 DDL을 생성해 주는 기능을 제공합니다. 또한 엔티티의 각 컬럼들에 대해 NOT NULL, UNIQUE 등과 같은 제약 조건이 포함되는 경우에도 자동으로 DDL을 생성해 줍니다. 엔티티를 설계할 때 일반적으로 @Column 어노테이션을 활용합니다. @Column 어노테이션에서 해당 컬럼의 NOT NULL 제약을 설정할 수 있는데 @Column(name = "email", nullable = false)와 같이 nullable=false 설정을 걸어주면, 해당 제약 조건을 명시할 수 있..
2주 차 회고에 앞서 이번 2주 차는 1주 차 보다 더 바쁘고 빠르게 지나갔다.. 회의의 연속의 연속이었다. 대략적으로 어떤 일들이 있었는지 생각해 보면 팀 로고와 메인컬러, 주 폰트를 선정했고, 팀에서 공통적으로 적용할 수 있는 컨벤션을 선정했다. 또 백엔드, 프론트엔드 프로젝트 세팅을 했고, 포비와 피움팀 커피챗을 했고, 목요일에는 사용자 인터뷰를 진행했다. 이 인터뷰를 기점으로 기획이 조금 변경되기도 했다. 덕분에 1차 데모데이도 무사히 마칠 수 있었다. 피움 로고와 색상, 폰트 요즘 슬랙에서 자주 보이는 우리 팀 로고다! 주노가 슬랙 여기저기 이모지를 붙이고 다닌다. 덕분에 광고 효과가 꽤 있는 것 같다 ㅎㅎ 다양한 후보들이 있었는데 최종적으로 선택된 로고는 가장 심플하면서 눈에 잘 띄는 로고로 ..
레벨 3에 들어가기 앞서 정신없이 바빴던 레벨 2가 끝나고 팀 프로젝트를 진행하는 레벨 3가 시작되었다. 이번 방학은 인텔리제이를 단 한 번도 켜지 않고 2주 동안 정말 알차게 놀았다. 공연도 보고 강릉 여행도 다녀오고 부산도 다녀오고! 너무 놀고 있는게 아닌가 라는 마음 한 켠의 불편함이 있었지만, 언제 놀겠냐는 마음으로 더 열심히 놀았다. 그래서 그런지 레벨 3를 시작한 이번 주는 학습에 맞는 신체 리듬이 전혀 잡히지 않았다. 방학 중에 레벨3 팀과 프로젝트 주제가 발표되었는데, 꽤 흥미로워 보이는 주제라 만족스러웠다. 개발을 하면 할수록 나는 문제를 해결하고 싶은 개발자가 되고 싶다는 것을 느끼고 있다. 개발에서 기술적으로 흥미를 느끼는 부분도 당연히 있지만, 내가 가지고 있는 능력으로 사람들이 느..
Before(Service -> Repository) 지하철 미션을 진행하면서 리뷰어분께 다음과 같은 피드백을 받았다. 현재 지하철 애플리케이션에는 지하철 노선과 관련된 비즈니스 로직을 담당하는 LineService가 있고, 노선의 역과 관련된 비즈니스 로직을 담당하는 StationService가 있다. 각 서비스 계층에 연결된 LineRepository, StationRepository도 함께 존재했다. 계층형 구조를 가져가면서 Service가 다른 도메인의 Repository(DAO)를 참조하는 것은 당연하다고 생각했다. 오히려 Service가 다른 Service를 의존하는 형태를 지양했다. 왜냐하면 계층형 구조에서 Service가 Service를 참조하는 구조는 순환참조가 발생할 수 있다고 생각했고..
웹 개발자라면 한 번쯤은 CORS(Cross - Origin - Resource - Sharing) 정책 이슈를 경험해 봤을 것입니다. 저 또한 대학생 시절에 했던 토이 프로젝트에서 CORS 이슈를 경험했고, 처음 맞닥뜨렸을 때는 무엇이 문제인지 알기가 어려웠던 기억이 있습니다. CORS는 Cross-Origin Resource Sharing의 줄임말로, 교차 출처 리소스 공유라고 해석할 수 있습니다. 교차 출처 리소스 공유... 개인적으로 말이 너무 어렵다고 생각합니다. '교차 출처(Cross-Origin)' 라고 하는 것은 쉽게 말하면 '다른 출처'라고 생각하면 좀 더 쉽게 이해할 수 있을 것 같습니다. 먼저, 출처가 무엇인지 알아보겠습니다. Origin 서버의 위치를 의미하는 URL은 여러 구성 요..
스프링 프레임워크에서 필터와 인터셉터는 웹 애플리케이션의 요청 및 응답을 처리하기 전후에 실행되는 컴포넌트이다. 스프링에서 컨트롤러로 요청이 들어오기 전에 처리해야 하는 작업이 있다. 애플리케이션 여러 로직에서 공통으로 관심이 있는 있는 것을 공통 관심사(cross-cutting concern)라고 하는데 대표적으로 인증, 인가, 로깅 등이 있고 주로 필터와 인터셉터를 통해 해당 기능을 수행한다. 필터와 인터셉터 두 컴포넌트 모두 비슷한 목적을 가지고 있지만, 사용되는 시점과 적용되는 방식에 차이가 있다. 필터(Filter) public interface Filter { public default void init(FilterConfig filterConfig) throws ServletException..
- Total
- Today
- Yesterday
- java
- 스프링 Logback
- 팀프로젝트
- 알림기능개선기
- 런칭 페스티벌
- 8주차 회고
- 피움 6주차 회고
- jpa
- dm-zoned
- 스프링MVC
- 피움
- 프로젝트
- 스프링 프레임워크
- 우테코
- 3차 데모데이
- 스프링 부트
- 파이썬
- 네트워크
- ZNS SSD
- dm-zoned 코드분석
- 2차 데모데이
- 회고
- 알림개선기
- 5주차 회고
- CI/CD
- 환경 별 로깅 전략 분리
- ZNS
- 백준
- 우테코 회고
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |