코드스테이츠 - 3회차 백엔드 부트캠프 110

Main-Project 회고록

프로젝트 내용 프로젝트 주제 스터디 모집 사이트 규모 백엔드 3명(담당) 프론트엔드 3명 기간 4주(2023.01.03 ~ 2023.02.03) : 평일 9AM ~ 6PM 사용 기술 백엔드 : spring-boot(IDE : IntelliJ), postman 프론트엔드 : react(IDE : Visual Studio Code) 배포 : AWS(EC2 - 서버 배포, S3 - 정적페이지 배포, RDS - 데이터베이스) 데이터베이스 : MySQL 보안 : JWT 사용, OAuth2 통신 : Rest API 프로젝트 결과물 테이블 명세서 화면 정의서 요구사항 정의서 코드(GitHub) https://github.com/kung036/seb41_main_022 팀 노션 페이지 https://codestates..

2023.02.01 수 - 쿠키 보안 정책

📄 학습내용 쿠키 보안 정책 AWS의 EC2에 서버를 올려서 쿠키를 저장하려니 다음과 같은 경고가 나오고, 쿠키가 저장되지 않았다. 'Secure' 속성은 있지만 보안 연결을 통해 수신되지 않았으므로 Set-Cookie 헤더를 통해 쿠키를 설정하려는 시도가 차단되었습니다. 해결시도 1) 안됨 allowCredentials의 값을 true로 변경해서 쿠키 정책 허용 쿠키를 생성할 때, 유효기간 설정하지 않기 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOri..

2023.01.20 금 - restdocs 생성 시 jwt로 인한 에러

📄 학습내용 RestDocs 생성 시 JWT 토큰(security filter)으로 인한 에러 에러 메세지 Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTest..

2023.01.18 수 - 멘토님과 만남

📄 학습내용 멘토님께 받은 조언 1. reformat code 하기 문맥 정리하기 2. 정규화하기 -> 적재적소에 사용하는 것이 중요하기 3. 비기능적 요구사항 : 읽기 쉬운 코드 작성, 빠른 동작 -> 좋은 프로그래머의 영향 기능적 요구사항 : 코드 구현 4. 코드 구현이 오래 걸리는 이유 https://soojin.ro/blog/sw-estimation https://brunch.co.kr/@supims/576 5. 랜덤 이미지 https://picsum.photos/ 6. 테스트 코드(슬라이스 테스트) -> 나중에 작성하기 -> 지금은 구현이 제일 중요!! -> unit 테스트는 지금 수준에서 적절한 것 같음 7. 소프트웨어 구성요소 : 구현, 리팩토링, 테스트 연관관계에 있는 엔티티들을 업데이트할..

2023.01.17 화 - 인텔리제이 인식 오류, CORS 에러

📄 학습내용 인텔리제이 java 파일 인식 오류 문제 상황 문제해결 노력 1) gradle 오류라고 판단하고 세팅하려니 아래와 같은 상황이 펼쳐짐 Generate .*iml files for modules imported from Gradle를 체크하고 Gradle을 재시작해보았지만 문제 해결 X 문제해결 노력 2) springboot 인식 오류라고 생각했지만 main 실행시켰을 때 동작 잘하고, postman으로도 확인해보았지만 정상적으로 작동함 문제해결 노력 3) client 코드 동작시키는 중 .idea가 꼬여서 제대로 작동하지 않았을까봐 .idea 파일 삭제 후 재가동해보았지만 여전히 java 파일을 인식하지 못함 문제해결 노력 4) IntelliJ 종료 후 idea 파일 삭제 main은 인식했지..

2023.01.06 월 - query string 배열형

📄 학습내용 Query String을 배열 형태로 받는 방법 구현방법 ?person[]=name&person[]=age → 가장 좋은 방법 ?person=name,age → 괜찮은 방법 ?person=name&person=age → 나쁜 방법 참고 사이트 : https://stackoverflow.com/questions/6243051/how-to-pass-an-array-within-a-query-string react 서버 동작시키기 in IntelliJ IntelliJ에서 react 프로젝트 파일 오픈하기 IntelliJ 내부 터미널 접속하기 npm install 받기(처음 프로젝트를 다운받고 딱 한 번만 실행하기) npm run start : 서버 실행(수정 사항 바로 반영됨) 주제 주제 주제 주..

2023.01.10 화 - response body에 내용 담기

📄 학습내용 멘토님 말씀 최대한 API를 분리해서 작성하는 것이 좋음 무조건 한 API에 한 페이지에 필요한 모든 정보를 전달하는 것이 좋은 것은 아님!! response body에 내용 담기 getwrite() 메서드 사용 public void getBody(HttpServletResponse response) { // response.body 설정 response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setCharacterEncoding("utf-8"); // 클래스 생성 Car car = new Car(); car.setName("car1"); // 클래스를 json 형태로 변경 ObjectMapper mapper = new Obj..

2023.01.06 금 - audit의 null 에러

📄 학습내용 주제 Auditable.java @Getter @Setter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class Auditable { @CreatedDate @Column(name = "created_at", updatable = false) private LocalDateTime createdAt; @LastModifiedDate @Column(name = "LAST_MODIFIED_AT") private LocalDateTime modifiedAt; } 위의 Auditable.java 파일을 entity에 extends했을 때, null이 저장되는 경우 main 메서드 수정하기 @Ena..