코딩공부
-
내일배움캠프 67일차코딩공부 2023. 8. 18. 21:01
오늘은 어제 받은 S.A 피드백을 반영하여 수정했고, 파트 분배를 위해 파트를 미리 나누어두었다. 3일차 기술면접 질문: RDBMS의 정규화에 대해 설명해주세요. 답변: 정규화는 데이터 무결성을 유지하기 위해 데이터를 구조화하는 작업입니다. 즉 중복을 최소화하기 위한 작업입니다. 정규화는 이상 현상을 제거하고 데이터베이스 구조 확장 시 재디자인을 최소화한다는 장점이 있습니다. 단점은 릴레이션 분해로 인해 릴레이션 간 연산을 수행할 때 join이 많아지고 이로 인해 성능이 저하될 수 있다는 점입니다.
-
내일배움캠프 65일차코딩공부 2023. 8. 16. 21:11
오늘 최종 프로젝트 주차가 시작 되었다. 새로운 팀원들과 대화를 나누고 S.A. 작성을 하였다. 8월 16일 기술면접 질문: NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. 답변: RDBMS는 명확한 데이터구조를 보장하고, 복잡한 쿼리를 사용할 수 있다는 장점이 있지만, 확장성에 한계가 있습니다. NoSQL은 확장성과 유연성에 있어 강점이 있다는 장점이 있지만, 명확한 데이터 구조를 보장하지 않으며 복잡한 쿼리 기능에 약하다는 단점이 있습니다.
-
내일배움캠프 61일차코딩공부 2023. 8. 9. 21:41
오늘도 팀 프로젝트를 진행한다. 문제 POST는 정상적으로 작동이 되는데 PUT으로 칼럼을 수정하려 하면 에러가 발생한다. 다음 블로그 글을 참고하여 ColumnClass에 있는 board 필드의 @ManyToOne(fetch = FetchType.LAZY)를 @ManyToOne으로 수정했다. 참고한 블로그 글: https://ahndding.tistory.com/24 [JPA] FetchType.Lazy로 인한 JSON 오류 (InvalidDefinitionException: No serializer found for class) 발단 Front에서 엔티티를 저장하는 과정에서 처음 데이터를 저장하는 순간에는 올바르게 작동하지만 수정(edit)하고 저장할 때에는 에러(HttpStatus 500)를 리턴한..
-
내일배움캠프 47일차코딩공부 2023. 7. 20. 20:51
오늘은 팀 프로젝트 4일차다. 어제의 쿼리문에 내가 태그된 글을 조회하는 기능을 추가하여 1차 완성을 하였다. 하지만 같은 게시글은 1번만 조회하고 싶은데 조건이 동시에 충족되면 같은 게시글을 2회 이상 출력하는 문제가 아직 남아있었다. group by p.id를 사용하고 싶지만 lp.created_at을 이용해 정렬하고 있기 때문에 둘 사이에 충돌이 있는지 사용할 수가 없었다. 수많은 삽질 끝에 max(lp.created_at)을 사용하면 group by도 사용할 수 있고 가장 최근에 마음찍힌 글 하나만 남길 수 있다는 것을 깨달았다. 다음이 완성된 sql문이다. select p.id, p.created_at, p.modified_at, p.content, p.image_url, p.views, u.u..
-
내일배움캠프 46일차 (Mysql에서 두 날짜 칼럼을 이용해 정렬하기)코딩공부 2023. 7. 20. 14:36
오늘도 이어서 팀 프로젝트 참여를 하고 있다. 데이터를 정렬할 때 post의 created_at과 likes_post의 created_at을 동시에 사용하고 싶은데 감이 안와서 고민하고 있다가, 서브쿼리를 사용하는 것이 해답이 되어주지 않을까 하는 생각이 들었다. 참고글: https://goodteacher.tistory.com/615 서브쿼리 작성을 시작했지만 서로 다른 칼럼에 있는 두 날짜를 비교할 방법을 찾지 못했다. 그러던 중 if문을 사용할 수 있으면 쉬울 텐데... 라고 생각하며 구글링을 하다 if문을 sql에서도 사용할 수 있다는 것을 알게 되었다. 다음은 if문을 사용해 두 칼럼을 함께 사용해 날짜를 정렬한 것이다. likes_post 날짜가 더 클 경우 likes_post의 created..
-
내일배움캠프 44일차코딩공부 2023. 7. 17. 21:05
오늘은 백오피스 프로젝트 주차가 시작되었다. 우리조는 sns 프로젝트를 선택하였고, 나는 전체 포스트를 조회하는 메인페이지를 맡게 되었다. 스프링 후발대 강의 메모(7회차) Oauth 2.0 -> 어느 부분을 사용하고 있는지 확실히 알아야 함 우리가 사용하는 것은 클라이언트 역할 뿐 서버에서 제공해봐야 진짜 사용법 https: http에 패킷을 암호화하는 레이어가 포함 Oauth 2.0 - 프로토콜 면접 - 일부러 당황시키는 질문 할 수 있음 Mockito spy 문제 다음 sql문이 원하는 대로 실행되지 않았다. 조건문 마지막의 ((f.follower_id = 1) and (f.followee_id = lp.user_id))부분이 잘 작동되지 않았다. select * from post p left jo..
-
내일배움캠프 41일차코딩공부 2023. 7. 12. 21:02
오늘도 어제에 이어서 스프링 심화 과정을 학습했다. https://haeinj-backend-study.tistory.com/67 Spring 심화 1주차 소셜 로그인 - OAuth 사용 OAuth: 접근 위임을 위한 개방형 표준 테이블 설계 옵션 카카오 유저를 위한 테이블을 하나 더 만든다. 장점: 결합도가 낮아짐 단점: 구현 난이도가 올라감 기존 회원 테이 haeinj-backend-study.tistory.com 오늘은 심화과정을 마무리하고, 내일 일찍 일어나서 오전에 과제를 시작할 계획이다.