며칠간 CRUD 게시판 리모델링 하면서 많은 부분을 생각했다.

 

1.Spring Security관련 고민

https://imslo.tistory.com/71

 

CRUD 게시판 리팩토링해보기 - <1> Spring Security, Jwt인증 적용

그동안 배운 것들을 적용해 기존 만들었던 CRUD 게시판 처음부터 다시 만들어보기 1.Spring Security 적용 (JWT방식 커스텀 필터 사용) 2.Controller에 @Valid 어노테이션 적용 3.JPA 연관관계 변경 (양방향 ->

imslo.tistory.com

 

2. CRUD 관련 고민

https://imslo.tistory.com/72

 

CRUD 게시판 리팩토링해보기 - <2> 프로젝트 구조 만들기, Entity 생성, Exception handler

그동안 배운 것들을 적용해 기존 만들었던 CRUD 게시판 처음부터 다시 만들어보기 1.Spring Security 적용 (JWT방식 커스텀 필터 사용) 2.Controller에 @Valid 어노테이션 적용 ( 간단해서 보류 ) 2.5 기존 Articl

imslo.tistory.com

 

특히 Domain의 Dto의존성을 줄인 부분과

Entity간의 조회 사례를 생각해보면서 관계설정을 한 부분이 시간이 오래걸렸는데, 도움이 되었다.

<개발 공부>

Spring Boot를 통해 간단한 CRUD API를 만들 수 있게 되었다.

부트캠프의 강의가 도움이 된 부분도 있지만, 온전히 내 것으로 만들려면 개인적으로도 공부를 많이 해야된다는 것을 느꼈다. Spring이라는 거대한 프레임워크를 몇 시간 강의 안에 담아낼 수는 없기 때문에, 강의에서는 전체적인 흐름과 소소한 팁들만 전달해줄 수 있을 뿐이다. 강의 내용만 따라하는 것보다는, 전체적인 틀을 벗어나지 않는 선에서 조금 씩 바꿀 수 있는 것들을 실험해보면서 이해하는 것이 가장 효율적인 방법이라고 느꼈다.

Spring Security를 적용할 때 가장 많이 느꼈는데, 강의에서 나온 것과 조금 다르게 하려고 할 때마다 새로운 것을 배워야했고, 결국 Spring Security의 구조를 가 공부하게 되었다. 지금까지 부트캠프에서 주어진 과제로 했던 것을 로그인/회원가입 기능부터 혼자서 만들어보며, 서비스로 생각했을 때 기능이 어떻게 되어야하는지, 그에 맞춰 Entity간의 관계는 어떻게 변해야하는지 생각하여 적용해보고 있다.

JPA를 사용하며 느낀 것은, JPA가 개발자들이 반복하여 작성하는 DB관련 코드를 줄여주고, 효율적으로 작성하게 해주는 것은 맞지만 결국에는 SQL을 알아야 이를 더 잘 활용할 수 있다는 것이다. 이 뿐만 아니라 많은 부분에서 내가 그동안 놓쳐왔던 CS관련 공부가 필요하다는 것을 느끼고 있다. 다른 개발자들이 몇년에 걸쳐 공부한 것을 짧은 시간 안에 공부하려는 데서 필연적으로 마주칠 수 밖에 없는 벽인 것 같다. 조금씩 시간을 내서 꾸준히 공부해야겠다.

 

<인생>

조카를 처음으로 안아봤다. 한달 된 아기를 안아본 것은 처음인데, 신비로운 경험이었다. 공부 열심히 해서 떳떳한 삼촌이 되고싶다고 생각했다.

IFSC 클라이밍월드컵을 직관했다. 용마폭포공원 스포츠클라이밍경기장에서 열렸는데, 앞에는 경기장이, 뒤에는 폭포가 있는 환경이 아주 멋졌다. 세계적인 선수들을 가장 가까이서 볼 수 있어서 너무 좋은 경험이었다.

'일기 > 주간회고' 카테고리의 다른 글

코딩테스트 응시 // Spring 입문  (0) 2023.04.17
일기 겸 개발 부트캠프 일주일차 후기  (0) 2023.04.01

@ControllerAdvice와 @ExceptionHandler를 이용하여 예외처리 하는 것을 연습했다.

커스텀Exception을 처리하는 것은 좀 더 공부해야할 것 같다.

 

이번 주 페어와 연관관계에 대해 얘기했다.

 

User정보를 받아와 Article을 생성할 때, User에게도 Article을 추가해줘야하는 이유

=> 아마 DB단에서는 상관이 없을 텐데, Java객체를 사용할 때 DB에서 추가적으로 조회하지 않아도 User가 가진 Article의 정보를 양쪽으로 업데이트 해주는 것이 데이터 정합성이 맞다고 생각함

--------------------------------->공부한 뒤에 포스팅하기

 

@OneToMany에서 발생할 수 있는 문제

=> User를 조회하면 Article을 다 가져와야하고, Article은 또 Comment를 다 가져와야한다.

근데 fetchType을 lazy로 했을 경우에, 객체가 사용될 때 쿼리가 날라간다.

그럼 User객체에 Article을 List로 만들어서 넣어줄 때, Article을 조회하는 쿼리가 날라갈것이다.

그럼 Article을 가져올 때 Comment를 List로 만들어줘야하니까 매 번 쿼리가 새로 날라갈것임.

이렇게 연관관계에서 쿼리가 불필요하게 많이 날라가는 문제를 N+1 문제라고 함.

==> fetch타입을 join으로 해놓으면, 처음 User를 find할 때, fetchtype이 join으로 되어있는 컬럼들을 한꺼번에 가져와 이런 문제를 해결할 수 있음.

---------------------------->까지 얘기했는데, 검증 안되고 우리가 이해만 한 내용이므로 나중에 따로 공부해서 포스팅해야함

 

 

https://imslo.tistory.com/67 게시판 CRUD 업그레이드

 

HttpServletRequest,  HttpServletResponse로 api통신 간에 데이터를 주고받는 법을 약간 익힘

==>주말에 공부 더 하기

 

JWT 사용법 익힘

 

JPA 연관관계 활용해봄

==> 주말에 공부 더 하기

https://imslo.tistory.com/62

네이버 코딩테스트 응시함.

https://imslo.tistory.com/39

 

네이버 코딩테스트 응시

부트캠프 시작 전 삼성 SCSA 전형에 지원했고, 부트캠프 1주차에 경험삼아 네이버에 지원했다. 4/15 9:00 ~ 10:30 삼성 GSAT 예비소집 일정이 생겼고, 네이버 코테는 같은 날 10:00에 시작이었다. 삼성 예

imslo.tistory.com

 

Spring boot 입문 하였는데, 생각보다 어려웠다.

 

HTTP(HyperText Transfer Protocol)를 통해 클라이언트와 서버 간의 통신을 배웠으며,(https://imslo.tistory.com/38)

 

이러한 통신을 Spring MVC 패턴을 통해 처리하는 과정을 경험했다. (https://imslo.tistory.com/41)

 

특히, Spring에서 @Controller가 어떻게 동작하는지를 공부할 때 흥미로웠다.

 

URL에 요청이 들어왔을 때, 그것을 지정된 메서드에 매핑해주는 것이 @Controller인데, 간단해보이는 개념이지만 Spring

 

내부적으로는 Servlet에 내용이 전달되고, Handler가 이를 받아 처리하여 Controller에 보내준다. 

 

Spring이 어떤 과정을 편리하게 만들어주고 있는지 알게되어 흥미로웠다.

'일기 > 주간회고' 카테고리의 다른 글

주간 회고  (0) 2023.05.01
일기 겸 개발 부트캠프 일주일차 후기  (0) 2023.04.01

Springboot 및 서버 이해 // SQL // JPA  

https://imslo.tistory.com/41

 

 

SpringBoot 및 서버 이해 // SQL // JPA

서비스가 커지고 문제가 복잡해질수록, 이를 처리하기 위한 소프트웨어의 아키텍쳐적인 부분이 중요해진다. 내가 진행했던 토이프로젝트의 서버는 크게 세 가지 일을 했다. -새로운 데이터를

imslo.tistory.com

Spring MVC 패턴 이해하기

https://imslo.tistory.com/55

 

Spring MVC 패턴 이해하기

Model - View - Controller의 디자인 패턴. 비지니스 로직과 화면을 구분하는 데 중점을 두고있다. Model : 데이터와 비지니스 로직을 관리 View : 레이아웃과 화면을 처리 Controller : 사용자의 요청을 필요

imslo.tistory.com

IntelliJ 콘솔창 한글 깨짐

https://imslo.tistory.com/40

 

IntelliJ 콘솔창 한글 깨질때

https://www.lesstif.com/java/intellij-file-console-encoding-121012310.html

imslo.tistory.com

알고리즘

https://imslo.tistory.com/43

 

[프로그래머스 lv.2 - 150368] 이모티콘 할인행사 // Java 재귀, DFS

https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

imslo.tistory.com

 

https://imslo.tistory.com/35

 

IntelliJ 디버거 활용 - Exception 조건설정

알고리즘 문제를 푸는데, for문 안에서 정규식을 처리하고 특정한 로직을 수행하는데 정규식의 어떤 케이스에서 에러가 나는지 몰라 함수 여러군데에 print문을 찍어 확인하였다. 코드도 지저분

imslo.tistory.com

 

+ Recent posts