생각정리/항해99 (65) 썸네일형 리스트형 [주특기 프로젝트] 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 재발행 부분을 수정하였다. 이제 소드는 어느 정도 정리가 되어 에러로그.. [주특기 프로젝트] 3일차 미니 프로젝트 진행 Swagger 검증 적용 문제점 : 리프래쉬 토큰을 사용해서 검증 토큰을 스웨거에서 2개를 사용해야되는데 적용이 안됨. 해결 : SwaggerConfig에 어노테이션 추가를 해서 Authorize에 토큰을 추가 해주고 OpenAPI에 security를 추가해 메소드 전역에 적용을 시켜줄 수 있다. @SecurityScheme( type = SecuritySchemeType.APIKEY, in = SecuritySchemeIn.HEADER, name = "Authorization", description = "Auth Token" ) @SecurityScheme( type = SecuritySchemeType.APIKEY, in = SecuritySchemeIn.HEADER, name .. [Weekly I Learned]9월 3주차 CORS (Cross-Origin Resource Sharing) 교차 출처 리소스 공유로, 보안상의 이유로 서로 다른 출처간의 리소스 공유요청을 제한하는 정책 CSRF와 XSS등의 방법을 막기 위해서 접근을 차단한다. 프론트엔드서버와 백엔드서버가 서로 출처가 다르기 때문에 CORS 설정을 통해서 백엔드서버가 프론트엔드서버에 대해서 허용을 해줘야 CORS오류를 방지할 수 있다. 출처(Origin)란 ? URL에서 Protocol, Host, Port 까지 합친 부분 Https://(Protocol) + www.naver.com(Host) + :3000(Port) [주특기 프로젝트] 2일차 미니 프로젝트 진행 Swagger 적용 build.gradle (spring.boot version 3.1.3) 의존성 추가 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' 스프링 3.1.3와 openapi 2.2.0 버전에서는 Controller와 Config를 추가하지 않아도 자동적으로 API명세서를 문서화시켜 준다. (자동완성으로는 2.1.0 버전이 끝이지만 2.2.0 버전으로 빌드하면 적용이 된다.) SwaggerConfig 추가설정 @Configuration public class SwaggerConfig { @Bean public GroupedOpenApi publicApi() { return GroupedOpe.. [주특기 프로젝트] 1일차 미니 프로젝트 계획 프로젝트 주제 낚시를 하는 장소, 어종등을 낚시꾼들 간에 공유 낚시꾼들 간의 소통 구현 예정 기능 와이어프레임 ERD 처음 해보는 프론트분들과의 협업 프로젝트이지만 다들 좋게 컨셉을 빨리 나오게 되어서 생각보다 순조롭게 하고 싶은 기능들이 나와 API명세서와 ERD 계획을 작성할 수 있었다. 그리고 처음 사용해 보는 figma로 와이어프레임을 작성했는데 신기했다. 같이 작업을 할 수 있는 포토샵? 일러스트레이터? 느낌인데 생각보다 가볍기도 해서 지금 프로젝트뿐만 아니라 다양하게 사용해 볼 수 있는 것 같다. 기능 구현은 기본적으로 해본 내용들로 구성을 하고 추가적으로 지도 API를 사용해 보고 기본 내용들을 빨리 끝내고 추후에 날씨 API, 소셜 로그인 API 등을 추가해서 구현해 보.. [주특기 3주차] Spring 6일차 주특기 3주차 시험 게시글 작성, 전체조회, 개별조회, 수정, 삭제 API를 구현하고 배포하는 테스트를 하였다. API를 구현하는 것은 쉽게 끝났는데, 배포를 한 번도 해본 적이 없어서 인터넷에서 찾아보면서 한다고 꾀나 고생을 했다. 처음에 클라우드 DB를 선택하는데 클라우드 DB는 써본게 몽고 DB 밖에 없어서 이걸 DB구성을 몽고로 해야 되는가 싶어서 찾아보다가 JPA를 사용하는데 MySql 클라우드 DB를 써야 되지 않을까 싶어서 찾아보다가 Planet Scale, freedb tech 등 발견했는데 무료 DB라고는 하지만 사용하는 자료들이 없어 역시 대중적으로 사용하는 AWS에도 RDB가 있어서 여기에서 하기로 결정하고 클라우드 DB를 만들었다. 나머지는 다 패스 하고 만들었다. 현재는 프리 티어.. 이전 1 2 3 4 5 6 ··· 9 다음