전체 글 (201) 썸네일형 리스트형 [실전 프로젝트] 1주차 - 1 프로젝트 계획 하기 아이디어 선정 과정 음악을 이용한 검색, 추천 서비스 음식점/카페 웨이팅 서비스 도로 혼잡도 분석 및 내비게이션 서비스 주식 매도 및 매수 서비스 이커머스 서비스 대용량 데이터를 처리를 하면서 동시성 제어를 할 수 있는 서비스 중에서 웨이팅 서비스와 이커머스 서비스를 고민 중에 추후에 기능의 확장성이 자유로운 프로젝트로 이커머스 서비스를 선정을 하였다. 시나리오 유저플로우 ERD 설계 API 명세서 https://www.notion.so/f63fe9d63ee94606b470979c9ba6c03f?v=28880ff0af824b078b24edbd529a6cee&pvs=4 API 설계 예시 A new tool for teams & individuals that blends everyday .. [주특기 프로젝트] 10일차 이미지 업로드 S3 사용 1. 의존성 추가 S3와 이미지 파일을 받는 formdata를 사용하기 위한 의존성을 추가 해준다. // amazon S3 설정을 사용하기 위한 의존성 추가 implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' // formdata 이미지 파일을 받기 위한 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-webflux:3.1.2' // formdata json형식 받기 위한 의존성 추가 implementation 'javax.xml.bind:jaxb-api:2.3.1' 2. amazon S3 config 설정 Ama.. [주특기 프로젝트] 9일차 Swagger Https 적용 시 문제 1. CORS에러 swagger 요청은 http이고 서버는 https이기 때문에 CORS에러가 발생한다. 추가해 두었던 OpenAPI 설정에 서버 설정을 추가해주면 해결이 된다. 로컬에서 테스트를 할 경우도 있으니 로컬 서버도 같이 추가를 해서 사용하면 편할 듯하다. @Bean public OpenAPI springShopOpenAPI() { // swagger 토큰 사용 설정 List securityRequirementList = new ArrayList(); securityRequirementList.add(new SecurityRequirement().addList(JwtUtil.AUTHORIZATION_HEADER)); securityRequirementLi.. [주특기 프로젝트] 8일차 Http -> Https 배포 1. 가비아에서 도메인 구매 가비아에서 shop, store, site, xyz까지는 1년 동안 어느 정도 저렴하게 도메인을 구매할 수 있어 사용하게 되었다. 동일한 도메인을 1년이상으로 연장하게 되면 할인가가 아닌 정상비용으로 처리한다. https://www.gabia.com/ 웹을 넘어 클라우드로. 가비아 그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브 www.gabia.com 일단 이번 프로젝트는 시험적으로 서보는 프로젝트이고 벡엔드서버의 경우 노출이 되지 않는 도메인으로 생각을 해서 가장 저렴한 , store 도메인으로 구매를 하였다. 2. Route 53에서 호스팅 설정 1. AWS Route 53에서 호스팅 영역을 구매한 도메인 이름으로 생성한다. 2. 호스팅 .. [주특기 프로젝트] 7일차 CI / CD 적용 Git Hub Action과 S3을 이용해서 CI를 구성하고 S3와 AWS deploy와 EC2를 이용해서 CD를 구성하였다. Git Hub Action 이제 정상적으로 배포가 성공 하지만 서버를 들어 갈려고 하는데 들어가지지 않아 배쉬를 통해 서버에 들어가 본 결과 파일이 실행 중이지 않다? 직접 실행을 해보니 발생한 오류. 오류의 내용을 읽어보면 jwtUtil 쪽에서부터 오류가 나오고 있는데, 확인을 해보니 암호화에 사용한 secretKey가 application.properties에 있는데 이를 github에는 올리지 않아서 문제가 되는 듯하다. 기존에 노출이 되면 안 되는 정보들이 있어서 application.properties 자체를 git에 올리지 않아서 poofiles를 .. [주특기 프로젝트] 6일차 CI / CD 적용 Git Hub Action과 S3을 이용해서 CI를 구성하고 S3와 AWS deploy와 EC2를 이용해서 CD를 구성하였다. Git Hub Action Workflow 기본 구성 스프링 3.0 이후 버전부터는 자바 최소 버전이 17부터 이기 때문에 자바버전만 수정을 해준다. name: Java CI with Gradle on: push: branches: [ "main" ] pull_request: branches: [ "main" ] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup.. [주특기 프로젝트] 5일차 미니 프로젝트 진행 post 좌표 추가 문제점 : 지도 API에서 좌표를 받아 post에 저장을 해야 하는데 배열형태로 리퀘스트를 보내어 DB에 일반적으로 저장이 불가능 해결책 : @CollectionTable을 이용해서 일대다 관계로 풀어서 자동으로 좌표를 저장하는 테이블을 생성하여 좌표값을 저장하여 연결해 준다. post_id를 FK로 coordinates테이블에서 관리한다. @ElementCollection @CollectionTable(name = "coordinates") private List coordinates = new ArrayList(); post API 수정 문제점 : 게시글 조회 API에서 화면별 기능이 달라 API에서 여러 조건이 생기고 기존의 카테고리로 나누는 방법이 쓸모가 없.. [주특기 프로젝트] 4일차 미니 프로젝트 진행 이제 프론트의 뼈대가 어느 정도 완성이 되면서 연계 작업을 하게 되니 여러 가지 오류들이 발생을 하기 시작한 것 같다. 일단 스웨거에서 테스트를 하는데 로그인이 controller에 있는 게 아닌 filter에서 로그인 처리를 하기 때문에 스웨거에 없어 별도로 스웨거에서 로그인을 하기 위한 API를 추가하였다. 또 CORS 설정에서 GET과 POST 메서드만 허용을 해두어서 PUT과 DELETE 메서드를 추가하였다. 토큰 이름들을 하드코딩으로 작성하여 수정을 하고 Access Token이 검증 시 만료될 경우 재발행이 되어야 하는데 검증마다 재발행이 되어 Refresh Token 검증 부분과 Access Token 재발행 부분을 수정하였다. 이제 소드는 어느 정도 정리가 되어 에러로그.. 이전 1 ··· 10 11 12 13 14 15 16 ··· 26 다음