전체 글 190

'22.07.04 ~ '22.07.08 (내일배움캠프 12주차) Weekly I Learned

How to record Weekly I Learned ? => 4F What is 4F? Fact : 이번주 있었던 일, 내가 한 일 Feeling : 나의 감정적인 반응, 느낌 Finding : 그 상황으로부터 내가 배운 것, 얻은 것 Future : 배운 것을 미래에 어떻게 적용할 것인가 1. Fact • 팀 프로젝트 2주차 진행 완료 → 컨버전이 꽤 진행됐음! • 팀 프로젝트 문서화에 대한 재논의 및 보완 계획 수립 2. Feeling & Finding > 팀 프로젝트 2주차 진행 완료! 2주차 팀프로젝트가 완료됐다. 프로젝트가 시작된 지 벌써 2주가 지났다니 시간이 빠르다는걸 새삼 느낀다. 매일매일 똑같은 일상이어서 시간의 흐름의 체감이 쉽지 않지만 잠깐 떨어져서 바라보면 시간이 참 빠르다. 2..

'22.07.08 Today I Learned

- Spring Data JPA 활용해서 외래키로 쿼리메소드 작성하기 - 외래키로 엮인 테이블 강제로 drop 하는 법 1. Spring Data JPA 활용해서 외래키로 쿼리메소드 작성하기 프로젝트를 진행하며 좋아요 기능을 구현하는 과정에서 좋아요 엔티티에 댓글 엔티티와 유저 엔티티를 매핑을 했기 때문에 테이블도 자연스럽게 외래키로 매핑이 되었다. 이 과정에서 좋아요 테이블에는 외래키들 밖에 없어서 쿼리메소드를 어떻게 작성해야되나 고민을 했는데 구글링 하니 바로 답이 나왔다. - 일반적인 쿼리메소드 DB에 username이라는 column이 있을 때 ex) void findByUsername - 외래키 활용해서 쿼리메소드 User 엔티티에 PK가 id일 때 ex) void findByUser_Id {엔..

'22.07.07 Today I Learned

- 자바스크립트 모듈의 의미 - 좋아요 기능 구현 HOW? 1. 자바스크립트 모듈의 의미 프로젝트를 진행하면서 ajax call을 하는 함수를 자바스크립트 모듈로 만들어서 써보자는 의견이 있었다. 그래서 ajax call을 하는 함수를 다 한 군데에 모아놨는데 튜터님께서 이건 모듈이 아니라고 말씀하셨다. 모듈은 최소한의 기능단위여야 하고 다른 프로젝트에서 바로 가져다 쓸 수 있어야 하는 것이라고 하셨다. 생각해보니 내가 한 것은 자바스크립트 함수를 그저 모아놓은 것일 뿐 다른 프로젝트에서는 가져다 쓸 수 없는 것이었다. 이렇게 또 하나 모듈의 의미에 대해서 알 수 있었다. 2. 좋아요 기능 구현을 HOW? 오늘 대부분의 시간을 좋아요 기능을 어떻게 구현하면 좋을지에 대해서 고민하면서 보냈다. 구글링을 통..

'22.07.06 Today I Learned

- String 비교할 때는 equals를 사용하자. 1. String 비교할 때는 equals를 사용하자. 댓글을 작성 시간 순으로 정렬하는 기능을 만들고 싶었는데 여기서 배운 점이 있어 기록하고자 한다. 처음에는 findAllByNewsIdOrderByCreatedAtDesc 이런식으로 findAllBy를 해줬었는데 공식문서 및 튜터님의 조언을 참고해서 findBy까지만 하는걸로 수정했다. 튜터님께서도 이렇게 하면 문법적으로 오류가 없는 것 같다고 하셨다. 그런데도 포스트맨으로 확인을 해보니 원하는대로 정렬이 되지 않았다. 무엇이 문제인지 계속 고민을 했는데 정답은 controller쪽에 있었다. 원래는 표시한 부분에 if(direction == "DESC")) 이렇게 조건을 걸어줬었다. 그런데 이것..

'22.07.05 Today I Learned

- content-type CORS 에러 해결 1. content-type CORS 에러 해결 백엔드와 프론트엔드를 분리해서 작업을 하다보니 오늘 UI랑 API 연동하는 것을 테스트하려고 할 때 CORS에러가 발생했다. 응답 헤더의 Access-Control-Allow-Origin을 잘 명시를 해줬음에도 불구하고 에러가 생겨서 처음에 해결하는데 좀 어려웠다. 에러 메시지를 잘 읽어보니 content-type 쪽이 문제인 것 같아서 응답 헤더의 Access-Control-Allow-Headers에 content-type을 추가해주니까 잘 해결이 됐다.