우리존재 화잇팅 ㅎㅎ

 

 

 

1. 어려웠던 부분 : 어제 기술매니저님이 순환참조를 해결법으로 숙제를 내주신 Dto단 수정을 해보았다. 이중 for문을 사용해야 하는데 감이 오질 않아서 먼저 소영님한테 도움을 받아 Dto단에 코드를 구현해 놓고, 이어서 은솔님의 도움으로 Service단에서 다시 코드를 리팩토링 할 수 있었다. 언제쯤 스스로 코드를 구현할 수있는 날이 올까.... ㅎ 

 

2. 느낀 점 : 오늘 아침에 남병관 튜터님의 좋은 개발자란 무엇인가에 대한 세션을 들었다. 사고력, 구현력, 인성이라는 세가지 조건에 대해 말씀해 주셨는데, 마주한 문제를 스스로 해결할 수 있다는 믿음도 그리고 실제로 마주한 문제를 해결하는 구현력도 지금은 없는 것 같아서 과연 내가 개발자로서의 자질이 있는가에대한 생각을 해보는 하루를 가졌다. 아직은 그 자질을 스스로 판단하기엔 좀 이른 것 같고, 좀 더 실력이 쌓이면 다시 생각해 보는 걸로 ^_ㅠ

 

3. 새로 알게 된 내용 : 오늘은 AOP, Test 코드의 중요성, Spring Security 구조에 대한 부분을 복습하는 시간을 가졌다. 그리고 은솔님 덕분에  PostMan 헤더에 토큰 자동추가 하는법도 알게 되었다.

 

4. 셀프칭찬 (오늘 잘한 일) : 같이 언어스터디를 했던 효선님에 이어 우용님도 하차하셨다. 마음이 싱숭생숭, 내가 과연 잘하고 있는 걸까 라는 생각에 하루에 오조오억번은 들지만, 스스로 잘하고 있다고 잘 다독이고 최대한 작성한 코드를 이해하고 개념을 이해하려고 노력했다. 자주보고 많이 봐야 이해할 수 있다고 해서 다른 실력자님들의 코드도 많이 봐야 겠다.

 

5. 내일 할 일 : 심화주차 강의자료 정리 마무리, 심화주차 개념 정리 (과제 제출), 언어스터디, 시간이 된다면 회원탈퇴 구현하기.

 


[오늘 공부한 부분]

  • 자바 언어스터디 - 예외 처리(2)

[26] OAuth / 소셜 로그인

 

[26] OAuth / 소셜 로그인

OAuth(Open Standard for Authorization) 개방형 Authorization 의 표준이며 API 허가(Authorize)를 목적으로 JSON 형식으로 개발된 HTTP 기반의 보안 프로토콜 사용자들이 사용하고자 하는 웹사이트 및 애플리케이션

leejincha.tistory.com

[26] Spring AOP

 

[26] Spring AOP

AOP (Aspect Oriented Programming)란? AOP, 관점 지향 프로그래밍은 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법을 말한다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나

leejincha.tistory.com

[01] 게시판 프로젝트 서비스 요구사항 + ERD / API

 

[01] 게시판 프로젝트 서비스 요구사항 + ERD / API

서비스 요구사항 ERD 설계 ① Entity 테이블 항목 Post (게시글) User (사용자) Comment (댓글) CommentLike(댓글 좋아요) PostLike (게시글 좋아요) Timestampled (작성시간, 수정시간 보여주는 상위클래스) ② 테이

leejincha.tistory.com

[02] 새롭게 알게된 Code 구현 부분 정리

 

[02] 새롭게 알게된 Code 구현 부분 정리

게시글 작성 프로젝트 과제를 3주동안 점층적으로 수행했다. 과제를 마무리하며 모든 부분의 코드를 정리할 순 없고, 마지막 주차때 알게된 내 기준 기억하고 싶은 코드의 일부들을 정리해 보려

leejincha.tistory.com

 

 

1. 어려웠던 부분 : 오늘 항해99에서 제공된 스프링 주특기 심화주차 강의를 다 듣고, 심화주차 과제 구현을 시작했다. 과제 레벨1 까진 JWT토큰을 검증하는 코드 대신 스프링시큐리티를 사용하여 로직을 구현하는 부분이었는데, 강의를 본 후 비교적 쉽게 구현할 수 있었다. 근데 이어서 게시글과 댓글에 좋아요를 구현하는 부분은 도무지 감이 잡히질 않아서 인광선생님의 개인과외를 받으면서 구현에 성공했다.

또, 지난번에 다대일 양방향 연관관계를 매핑하다가 순환참조 오류가 나서 일단 임시방편으로 @JasonIgnore을 사용했는데, 오늘 기술매니저님이 Dto를 잘 바꿔보라고 팁을 주셨다. 호 ^^ 힌트를 주셔도 잘 모르는 나. 내일 다시 해보는 걸로.

 

2. 느낀 점 : 오늘 저녁에 2시간 동안 최원빈 튜터님의 CRUD세션을 들었다. 입문주차 과제구현을 직접 라이브 코딩을 해주시면서 어떤 흐름으로 코드가 구현이 되는지 설명해주셨다. 진짜 목소리가 너무 좋으셔서 세션이나 강의 들을때마다 잠이 미친듯이 오는데, 오늘은 진짜 나한테 너무 필요한 부분인 것 같아서 최대한 집중해서 들으려했다. 뭔가 아직도 기계처럼 다다닥 코드를 구현할 수 있는 수준은 아니지만, 그래도 자꾸 보다보니 대애충은 알 것 같은 느낌. 내일 오늘 완성한 코드를 다시한번 찬찬히 뜯어보고 특히 내가 제일 약한 부분이 매개변수와 참조변수를 넣어주는 부분인데, 이 부분을 다시 한번 잘 생각해 보면서 코드를 뜯어봐야겠다.

 

3. 새로 알게 된 내용 : 오늘 자바스터디를 통해 예외처리에 대한 공부를 다시 복습했는데, 마침 오늘 들었던 강의도 예외처리 부분이라 좀 더 이해가 쉬웠던 것 같다. 예외는 에러와 달리, 개발자나 사용자의 실수로 발생하는 문제를 의미한다. 따라서 예외가 발생할 경우를 잘 처리해준다면 프로그램 종료라는 큰 재난 없이 프로그램이 잘 굴러갈 수 있다. 또, 테스트 코드를 작성하는 부분도 배웠는데, 아직 테스트코드를 직접 구현하진 못할 것 같지만, 테스트 코드가 얼마나 유용한지는 알 수 있는 강의내용 이었다.

 

4. 셀프칭찬 (오늘 잘한 일) : 하루하루 어려운 스프링을 마주하면서 스스로를 의심한다. 의심할 때마다, 최대한 빨리 그 생각에서 벗어나려 했다. 어쨌든 시작했으니 끝을 봐야하고, 할 수 있는 만큼 최선을 다했다면 꼭 개발자가 되지 않더라도 후회는 없을 것 같다. 앞으로 남은 시간도 이런 마음가짐으로 너무 스트레스 받지 않고 할 수 있는 만큼 최선을 다하고 하루 끝에선 잘 견딘 나를 칭찬해 주자 : ) 

 

5. 내일 할 일 : 자바 공부 - 스레드, 과제 구현한 코드 다시 보기, 이번주 강의자료 재정리 하기.

 


[오늘 공부한 부분]

  • 자바 언어스터디 - 예외 처리
  • 스프링 시큐리티 강의 

[23] Spring Security

 

[23] Spring Security

Spring Security ① Spring Security 란? 'Spring Security' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 준다. 마치 '스프링' 프레임워크가 웹 서

leejincha.tistory.com

[24] ERD(Entity Relationship Diagram)

 

[24] ERD(Entity Relationship Diagram)

프로젝트를 구현하기 전 미리 설계해야 할 부분이 두 가지 있다면, 1. ERD 설계 2. API 설계 일 것이다. 지난 번에 Restful한 API 에 대한 글을 정리했으므로 오늘은 ERD를 정리해 보려 한다. RESTful API 설

leejincha.tistory.com

[25] JPA 다양한 연관관계 매핑

 

[25] JPA 다양한 연관관계 매핑

엔티티의 연관관계를 매핑할 때는 3가지를 고려해야한다. 다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 단방향, 양방향 : (객체 참조) 연관관계의 주인 : 양방향일 때, 연관 관계에서

leejincha.tistory.com

 

 

 

Spring 다들 너무 열심히 하는거 아니냐구요 ~_~ ㅎㅎ

 

 

 

1. 어려웠던 부분  : 이번주의 키워드는 인증 인가에 대한 개념과 연관관계였다. JWT 토큰을 이용해 게시글 수정과 삭제하는 기능 구현까지는 어찌저찌 됐는데, 게시글에 댓글까지 추가기능으로 넣으면서 연관관계까지 생각해야 하는 부분이 어려웠다. 반 사람들의 깃헙을 보며 다들 어떻게 코드를 짰는지 봤는데, 사람마다 각기 다른 코드를 구현하는게 신기하면서도 부럽기도하고, 난 아직도 참조변수가 어쩌고 저쩌고 매개변수가 어쩌고 저쩌고를 잘 이해하고 있지 않는 것 같아서 다시 기본기부터 시작해야 할 것 같다는 생각이 들었다.

 

2. 느낀 점 : 아직 스프링을 배운지 2주밖에 되지 않았으니, 모든게 어려운게 당연하다. 우리반에서 내 기준 잘하시는 분들이 더 늦게까지 열심히 공부하시는 모습을 보고 뭔가 반성하게되고 동기부여도 되는 한주였다. 이제 진짜 마지막주차밖에 안남았으니 이번주는 최대한 잡담을 줄이고 공부에 매진해야겠다.

 

3. 새로 알게 된 내용 : 인증과 인가의 차이점, 그리고 쿠키/세션과 JWT 차이점, 테이블 연관관계 맺는 방법, 의존성주입과 제어의 역전에 대한 내용을 공부한 한 주 였다. 정규식에 대한 내용도 찍먹해봤지만 고 부분은 그냥 그때 그때 다시 공부해야 할 것 같다. 김민지 기술매니저님의 블로그 글 덕분에 생성자 자동완성 어노테이션 세가지도 개념이 더 정리된 것 같다.

 

4. 셀프칭찬 (이번주 잘한 일) : 갑자기 난이도가 껑충 뛴 느낌이다. 직접 코드를 작성하진 못했지만, 그래도 여러 사람의 코드를 하나씩 다 뜯어보고 조합해서 내가 이해할 수 있는 나만의 코드로 다시 작성해 과제2를 구현한 부분을 칭찬하고 싶다. 언젠간 나도 다른분들처럼 스스로 코드를 작성할 수 있는 날이 오기를.

 

5. 이번주 할 일 : 스프링 시큐리티 개념 정리 + 과제 구현, JAVA 언어스터디, 연관관계 다시 공부하기. 

 


[이번주 공부한 부분 링크 정리]

 

<Spring>

[10] Spring Boot 어노테이션 정리

[11] Database 와 SQL

[12] 정규식(regex, rational expression)

[13] @Valid, @Validated (작성중. 수정필요)

[14] JPA (1)

[15] JPA (2) 심화

[16] IntelliJ 단축키 모음

[17] 숙련주차 과제 (개념 부분 - 키워드 정리)

[18] 인증과 인가 (1) 세션/쿠키, JWT

[19] 스프링 프레임워크

[20] 의존성 주입 DI(Dependency Injection)

[21] ORM, JPA, Spring Data JPA

[22] 항해99 주특기 숙련주차 시험 Spring

 

<JAVA>

[24] JAVA 타입 변환과 다형성

[25] JAVA 중첩 클래스/ 중첩 인터페이스

[26] JAVA 익명 객체 (Anonymous)

 

<기타>

이번주 내로 끝내야할 필수 개념들 ( 정리하고 갈게요 )

[07] 미니프로젝트 사용 함수, 새 개념 정리

 

1. 어려웠던 부분 : 스프링 시큐리티의 기본 개념을 이해하는 것 부터가 너무 어려웠다. 한시간이 넘는 강의를 통해 한줄씩 코드 설명을 해주셨는데, 이해를 하면서 넘어가려고 노력했지만 완벽히 흡수된 것 같지는 않다. 계속 반복하면서 익숙해지는 수 밖에 없을 것 같다. 그리고 오늘 카카오톡 로그인 기능을 구현하는데 자꾸 아래와 같은 오류가 발생했다.

근데 카카오톡이 참 친절한 점은 위의 해결방안 링크를 누르면 해당 오류코드가 어떤 부분인지 대략적으로 알려준다. 앱 키에 문제가 있었는데, 열심히 코드를 뜯어보니 코드에 빠진 부분이 있었다.

저기 &redirec 부분을 빠뜨려서 발생한 오류. 매일이 삽질의 시간인 하루가 벌써 34일이 지났다. 앞으로도 계속 삽질하는 날들의 연속이겠지. ㅎㅎ

 

2. 느낀 점 : 코딩을 하면 다양한 이유로 오류가 나지만 제일 허무한 건 오타 오류이다. 점 하나로 바로 고장나버리는 컴퓨터언어. 문득, 인생도 비슷하다는 생각이 스쳤다. 평범한 일상에 점하나 들어오면 갑자기 틀어지기도하고, 새 인생이 시작되기도 하니까. 개발자가 될지 안될지 아직은 모르겠지만 이렇게 매일 2-3시까지 노력하고있는 지금 이 시기가 내 인생이 새롭게 시작되는 지점이기를.

 

3. 새로 알게 된 내용 : 스프링 시큐리티 기본 개념에 대한 내용을 배웠다. 그리고 자바의 익명객체 개념 공부를 했다. 강의에 제공된 코드를 따라치긴 했지만, 카카오톡 로그인 기능이 구현되는 걸 눈으로 보니 너무 신기했다.

 

4. 셀프칭찬 (오늘 잘한 일) : 토요일, 놀고 싶은 마음을 꾹 참고 밤 약속도 취소하고 강의를 들었다. 

 

5. 내일 할 일 : 시간이 된다면 쉬는날 이지만 스프링 심화 과제1 구현하기 ! 


[오늘 공부한 부분]

  • 자바 언어스터디 - 익명 객체
  • 스프링 시큐리티 강의 

 

오늘 쉬는 시간에 우연히 본 영상인데 너무 도움이 됐다. 공유 !

https://www.youtube.com/watch?v=411dk4sYc7c&t=317s 

 

남들과의 비교에서 뒤쳐지고 있다는 것에 초점을 두지 말고, 나의 내일에만 집중하자 ! 나의 방향과 속도가 중요한 것을 잊지 말자 ! 

1. 어려웠던 부분 : 오늘 스프링 심화주차가 시작되었다. 스프링 시큐리티를 공부하게 되는데, 이번주 과제가 지난주 과제의 연장선이라 뭔가 과제2로 댓글과 연관관계를 구현하고 CRUD를 확실히 이해하고 넘어가야 하지 않을까라는 생각이 들었다. 그래서 다른 사람들이 새로운 공부를 시작할 때, 오늘은 무조건 과제2를 끝내자는 마음으로 시작을 했다. 처음엔 혼자 코드를 작성했는데, 오늘까지 절대 마무리를 못할 것 같아서 같은반 인광님과 은솔님 그리고 소영님의 코드를 보면서 조금씩 수정해 갔다. 그런데 각자 코드가 너무 다르기도 하고, 내가 모르는 부분이 많아서 결국 기술매니저님이 저녁 9시에 오셨을때 도움을 요청했다. 

 

2. 느낀 점 : 기술매니저님한테 코드가 어디서부터 잘못된 건지 모르겠어서 혹시 코드를 같이 봐주실 수 있는지 여쭤봤는데, 정말 너무 감사하게도 50분 동안 내가 작성한 코드 한줄 한줄 같이 봐주시면서 설명도 해주시고, 수정을 도와주셨다 ㅠㅠ

 이제 코드가 완성이 됐겠지 했더니 포스트맨으로 확인하는 과정에서 또다시 오류가 발생했다. 새벽 세시 반까지 은솔님과 인광님이 코드 수정을 도와주셨다ㅠㅠ 과연 내가 은솔님이랑 인광님이었어도 다른 사람을 그렇게까지 도와줄 수 있었을까 라는 생각이 들었다. 진짜 너무 다들 감사하다. 제발 실전 프로젝트때 이런 분들이랑 같은 조가 됐으면 좋겠다. 제발 !!!

 

3. 새로 알게 된 내용 

  • 순환참조 오류의 임시방편은 @JasonIgnore 이지만, 사실 더 견고한 해결법이 필요하다. 이 부분은 내일 더 찾아봐야 겠다.
  • 자바공부를 하면서 코드를 실행했을때 출력값이 생성자에서도 나올 수 있다는 것을 오늘에서야 알았다. 메소드가 비어있는데 도대체 어디서 출력이 되는거지?라는 생각을 했는데, 소영님이 이 부분을 알려주셨다. 
  • Entity에 선언된 PK값인 id는 통상적으로 그냥 id라고 명명하고, Dto단에서 변수명을 바꿔준다. 그리고 변수명이 userId, commentId 등 다르더라도, Repository에서 꺼내올 때는 그냥 id 라고만 선언해도 그게 userId 인지 commentId인지 스프링이 알아서 구분을 해준다. -> 예를 들어, CommentRepository에서 findById를 했다면 여기서의 id는 Comment 의 Entity에 선언된 PK id를 의미한다.

4. 셀프칭찬 (오늘 잘한 일) : 하루 종일 남들의 코드를 보며 어떻게든 과제2를 구현하려고 했는데, 여러 사람의 코드를 보다 보니 오히려 더 많이 헤맸던 것 같다. 내가 할 수 있는 선에서, 코드를 구현했는데 오히려 아는 수준에서 코드를 구현해서 내가 보기엔 더 이해가 쉬울 것 같다. 오늘 그래도 스스로 하려고 했던 숙제를 끝내서 뭔가 내일은 더 가변운 마음으로 새로운 공부를 시작할 수 있을 것 같다.

 

5. 내일 할 일 : chap09-2 공부, 이전 기수들 실전프로젝트 살펴보기, 스프링 심화 강의 1강 듣고 정리 + 과제 시작하기.


[오늘 공부한 부분]

  • 자바 언어스터디 - 중첩 클래스/중첩 인터페이스
  • 게시글 프로젝트 댓글 구현 + 연관관계 (하루 종일 걸림 ^__^)

 

[25] JAVA 중첩 클래스/ 중첩 인터페이스

 

 

+ Recent posts