1. 어려웠던 부분 : 오늘 머지한 백엔드 파일의 자잘한 오류들을 수정하고 S3 이미지 업로드를 시도했다. 무한 구글링으로 블로그를 찾아봤는데 계속해서 bad request 400 오류가 발생했다. 지성님이 한줄씩 디버깅 하는걸 알려주시면서 파봤는데도 결국 해답을 찾지 못했는데, 갑자기 에러와 씨름한지 12시간 반이 넘었을 쯤 정상 작동되었다. 다른 조원 분들이 나와 같은 오류를 겪으시길래 도와드리면서 알아차린 사실인데, 그 전엔 왜 갑자기 정상작동하는지 몰랐는데 다른분들과 오류를 공유하면서 알게되었다. 정답은 바로 권한설정에서 ACL (엑세스 제어 목록) 부분에서 [모든사람]-[객체]-[나열] 권한을 줘야 하는 부분이었다. 오늘 게시글에 이미지 업로드 부분까지 완료하고 싶었는데 하루종일 오류만 고치다 끝난 하루가 되었다.

 

2. 느낀 점 : 오늘 우리 팀원 중 한분이 하차하셨고 다른 팀에서도 하차하시는 분이 계셨다. 하루가 다르게 자꾸만 하차인원이 늘어간다. 오늘 오류랑 씨름하느라 하루가 다 갈때쯤에서야 소식을 들었는데, 반 분위기가 심상치 않은 것 같다. 뭐, 그래도 어쩌겠는가 ~_~ 난 일단 내가 할 수 있는 최선을 다하고 열심히 못했던 공부를 하고 일인분하면서 잘 버텨야겠다.

 

3. 새로 알게 된 내용 : 에러의 이유를 모를땐 브레이크 포인트를 찍으면서 한줄씩 파고들어서 터지는 부분을 봐야 한다. (아직 정확한 방법은 모름 ^_^)

 

4. 셀프칭찬 (오늘 잘한 일) : 난 13시간 에러랑 씨름했지만, 그래도 나의 삽질 덕분에 다른분들의 시간을 줄여드릴 수 있었다. . . . ! 

 

5. 내일 할 일 : 백엔드 코드리뷰, S3 기능구현 다시해보기, 서버베포 자료 공부하기 


[오늘 공부한 부분] 

[오늘 삽질한 부분]

 

하루종일 아래 문구만 바라보다 하루가 끝남. 

관리자 나와. ....... 당장 나오 ㅏ......

 

 

울어도 되나요 ? - 항해 42일 차

 

 

1. 어려웠던 부분  : 이번주는 팀원들과 각자 구현기능을 맡아서 깃헙으로 협업하는 과정을 연습하는 주차였다. 지난 주차 레벨2 과제 구현에 이어서 Spring Security를 사용하여 인증 인가를 받고, 좋아요와 회원탈퇴 기능까지 구현해야하는 주차였다. 지난 주차에 CRUD와 연관관계 매핑이 완벽히 숙지되지 않아서 이번주는 과제구현과 코드의 흐름 이해까지 동시에 진행해야하는 주차였다. 스프링시큐리티와 AOP 그리고 예외처리의 기본 개념을 이해할 새도 없이 과제부터 일단 구현해야해서 뭔가 개념 정리가 완전히 되지 않은 부분이 찝찝하다. 

 

2. 느낀 점 : 이번 주차에만 스프링 5명이 하차했다. 이쯤되니 항해99 과정이 과연 항해99가 홍보한 것처럼 제로베이스인 사람이 해도 되는 과정인가 하는 생각이 들었다. 밤샘 비행을 일주일 내내 했을때도 잘 아프지 않았던 내가 머리가 아파올 만큼 매일 늦은시간까지 최선을 다하고 있는데, 너무 벅차다. 심화주차또한 폭풍전야를 맞이하듯이 보냈는데, 미니프로젝트 팀발제를 보고 한번 더 머리를 얻어 맞은 느낌이었다. 팀을 배치하실 때 각자의 실력을 고려해서 좀 더 형평성 있는 팀을 구성해줘야 하는게 아닌가라는 생각이 들었다. 물론 나도 스프링팀에서 잘하는 편이 아니다. 못하는 사람을 탓하는게 아니라 항해99가 어쨌든 프로젝트 전에 1인분은 할 수 있도록 케어를 해줬어야 하는게 아닌가 하는 생각이 들었다.   

 

3. 새로 알게 된 내용 : 스프링시큐리티를 사용하여 인증 인가를 구현하는 법을 배웠다. 또, 강의자료를 통해 소셜로그인(카카오로그인) 기능도 구현하는 연습을 해봤는데, 차마 복습할 시간이 없어서 프로젝트 때 구현하진 못했다. 이번주차를 통해 한번 더 CRUD 흐름을 잡을 수 있었다.

 

4. 셀프칭찬 (이번주 잘한 일) : 이젠 다른사람의 코드를 꽤나 잘 베끼는 ^_^ 수준이 되었다. 베끼다보니 코드를 이해하게 되고, 또 베낀 코드를 다시 내가 응용해서 추가기능을 구현해 보는 그런 주차였던 것 같다. 나처럼 제로베이스로 힘들어 하시더 유리님이랑 지금까지 그만두지 말자고 버티자고 으쌰으쌰 해왔는데, 유리님이 하차하시면서 나도 많이 흔들린 목요일 이었다. 그런데 금요일 팀 발제 이후 정말 참아왔던 힘듬이 터졌던 것 같다. 마음이 잘 잡히지 않았지만 그래도 새로운 미니프로젝트에서 맡은 부분 코드구현에 집중하려고 했던 나의 태도를 칭찬한다. 일단 맡은 일에 최선을 다하자 ! 

 

5. 이번주 할 일 : 미니프로젝트 잘 마무리 하기 ( 수정해야할 부분 고치고, 추가 기능도 시도해 보기 )

 


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

 

< 심화주차 프로젝트>

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

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

[03] 트러블슈팅

[04] 주특기 3주 프로젝트 마무리

 

< Spring >

[23] Spring Security

[24] ERD(Entity Relationship Diagram)

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

[26] OAuth / 소셜 로그인

[27] Spring AOP

[28] Transaction

[30] Spring 심화주차 키워드정리

[31] CORS

 

< JAVA >

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

[26] JAVA 익명 객체 (Anonymous)

[27] JAVA 기초 복습

 

< 기타 >

개발자 국비지원 추천 + 개발의 태도

 

1. 어려웠던 부분 : 지난주에 배운 게시판 CRUD를 바탕으로 프론트엔드 분들과 협업하는 미니프로젝트 기간이 시작되었다. 협업하는 연습을 할 수 있는 주차가 되어야 하는데 시작 기획부터 삐그덕 되는 상황이 발생했다. 일단 프론트엔드 팀원 3분 중 2분은 지난 주특기 주차에서 배웠던 내용이 완전히 숙지가 되지 않은 분들이라 CRUD 기능 구현을 할 수 있는 상황이 아니고, 심지어 html로 화면을 만드는 것도 힘들어 하시는 분들이 배정이 되었다. 그래서 백엔드에서 하려고하는 기능을 축소해줬으면 좋겠다는 의견을 주셨다. 

 

그런데 백엔드 입장에선, 당연히 주특기주차때 배운 기능정도 까지는 즉, 추가기능이 아니더라도 CRUD는 하실 줄 알아야 하는게 아닌가 하는 생각이 들었다. 하, 이래서 커뮤니케이션이 힘들다는 거구나 라는 생각이 들었다. 그리고 팀 배정을 형평성 없게 이렇게 한 팀에 또 시련을 몰아넣은 항해99가 너무 원망스러웠다. 

 

일단, 두 분이 너무 의지가 약해지신 상태라 이걸 어떻게 해야하나 머리가 깨질 것 같았는데 팀 회의를 통해 최대한 그분들에게 할 수 있다는 마음을 드리려고 노력했다. 언제까지 못하다고 하시면 앞으로 프로젝트도 똑같은 문제가 발생할 것이라고, 일단 한번 시도해 보시라고 설득을 했다. 일단 html css 는 다른 팀에 비해 안예뻐도 괜찮으니 이 분들이 CRUD만큼은 이번주차때 할 수 있다는 마음으로 시도를 해주셨으면 좋겠다는 생각이 들었다.

다행히도 해보겠다고 말씀은 해주셔서, 앞으로 어떻게 될진 모르겠지만 일단 그분들을 응원하기로 ! 나도 못하는 입장이기 때문에 어떤 마음이실지 이해가 안되는 건 아니다. 어제부터 마음이 안잡혀서 머리가 너무 아픈 하루였는데, 일단 주어진 기능부터 일인분 몫을 해보자.

 

2. 느낀 점 : 예쁜말로 소통하자. 다른 사람한테 상처주지 않도록 노력하자.

 

3. 새로 알게 된 내용 : 커뮤니케이션이 참 중요하다는 것을 다시한번 느꼈다. 프론트엔드와 백엔드 뿐만 아니라 백엔드 사이에서도 어떤 부분을 담당할지 계속해서 업데이트 해주는게 중요하다는 것을 다시 한번 알게 되었다. 

 

4. 셀프칭찬 (오늘 잘한 일) : 미니프로젝트 기획을 하는데, 아무래도 프론트 엔드분들이 최대한 html css 부분을 간소화 할 수 있는 주제가 뭘까 생각하다가 항해99 10기 b반 롤링페이퍼 커뮤니티라는 아이디어를 생각해봤다. 형식은 항해 출석체크 페이지 처럼 메인을 만들고 개인의 이름을 클릭했을 때 팬명록 프로젝트와 비슷하게 작성하는 걸로 생각을 해봤다. 이번주에 5분이나 하차하시는 걸 보면서 뭔가 제대로 인사도 못하고 헤어진 분들이 있는 것 같아 아쉬운 마음에, 연말이기도 하고 서로에게 용기가 되는 말을 전할 수 있는 그런 프로젝트를 기획하고 싶었는데, 이런 아이디어를 고안한 나 자신을 칭찬하고 싶다 ! 

 

5. 내일 할 일 : 맡은 기능 구현 완료하기. 깃헙에 백엔드 부분 합치기.


[오늘 공부한 부분]

  • 프로젝트 기획 (아이디어 회의 , ERD 고안, API 명세서 작성, 파트 나누기)

 

기획 노션 링크 : https://www.notion.so/4-SA-9745b27d341a428a90d777bd7db5bfc3

 

4조 미니 프로젝트 (SA)

1. 팀원 정보

www.notion.so

피드백 대시보드 : https://docs.google.com/spreadsheets/d/1UtMWWFFJIf5k9q_s7LGm0feO0770wqZNT8lM7ZNa8j4/edit#gid=349344983

 

[항해99 10기 B반] 미니 프로젝트 대시보드

예시 담당 기술 매니저,프로젝트 명 0조,김항해,버킷리스트 일정,구분,상세 금요일 S.A. 제출,S.A. 링크,<a href="https://teamsparta.notion.site/SA-5-eb8d880296524bd4bde8a562b2906914">https://teamsparta.notion.site/SA-5-eb8d880

docs.google.com

 

 

1. 어려웠던 부분 : 오늘 미리프로젝트 제출을 완료 했다. 마지막날까지 추가기능을 구현하느라 부랴부랴 깃헙에 각자 작업한 파일을 합치는데, 깃헙 머지하는 과정에서 꽤나 고생을 했다. 과제를 제출하는 순간까지 반환타입을 통일시키는 리팩토링을 하고 회원탈퇴 추가기능을 구현하느라 하루종일 머리가 깨졌는데, 와중에 내가 의지하던 우리 팀원 유리님이 오늘 부로 하차하신다는 말을 전하셔서 마음이 잘 잡히질 않았다. 

 

2. 느낀 점 :

스프링을 공부하는 반 사람들 중 5명이 이번주에 하차했다. 다른 분들은 그렇다 쳐도, 친하게 지내던 유리님이 하차를 하시니까 마음이 너무 싱숭생숭한 하루였다.

 

하차하는 사람들의 속얘기를 들어보니, 못따라 가다보니 다음주부터 시작되는 프로젝트에 괜히 민폐가 되지 않을까 라는 생각을 하신 분들도 있었고, 항해99 커리큘럼이 빠르게 진행되다 보니 천천히 단단한 학습을 하고싶은 분도 계셨고, 강의자료만 토대로 스스로 공부를 해야하다보니, 문제가 발생할때마다 반에서 잘하시는 분들의 시간을 뺏으며 도움을 요청했는데, 돈을 내고 곳에서 상주해 있는 선생님이 없다보니 사람들에게 질문하는게 눈치 보이고 그렇다고 물어볼 매니저님의 시간은 저녁 2시간, 그것도 온전히 사용할 없는, 그런 부분에 대한 불만으로 하차하신 분도 계셨다.

 

반 사람들이 열심히 하지 않거나 못하는 사람을 감자라고 칭하는 걸 이번주가 되서야 알았다. 감자를 캐네 마네 하는 이야기를 처음 들었는데, 사실 잘하는 분들 입장에선 충분히 그 마음이 이해가 된다. 이곳에 온 이유가 취업이다보니 당연히 비슷한 실력을 가진 사람들과 프로젝트를 구현하고 싶을 것이다. 근데 한편으론, 그럼 나도 감자인가? 다음주부터 프로젝트를 연이어 3개 정도 하게 될텐데 내가 민폐를 끼치는 감자 포지션인가? 라는 생각이 들었다. 유리님 마음처럼 나도 생각이 많아지는 그런 하루였다.

 

3. 새로 알게 된 내용 : 깃헙으로 협업을 할 땐, 일단 시작이 되는 Root 파일을 만들어야 한다. 거기에 필요한 디펜던시를 설치해주고 그리고 공통으로 사용하게될 엔티티나 커먼패키지를 먼저 만든 뒤에 작업을 해야 더 효율적으로 작업을 할 수 있다.

 

4. 셀프칭찬 (오늘 잘한 일) : 지난주까지 남의 코드를 봐야만 내 코드를 작성할 수 있었는데, 이젠 남의 코드 보고 내 코드로 만드는 일은 좀 익숙해 진 것 같다. 그리고 오늘 처음으로 회원탈퇴 기능 구현 코드를 작성했다. 지성님이 개념공부보다 일단 코드를 더 많이 보라고 조언해 주셨는데, 확실히 코드를 많이 보다보니 흐름을 좀 더 읽을 수 있게 된 것 같다.

 

5. 내일 할 일 : 미니프로젝트 발제 (기획), 자바 스터디 (스레드)

 


[오늘 공부한 부분]

 

[29] Spring 심화주차 키워드정리

 

[29] Spring 심화주차 키워드정리

🔐 스프링 시큐리티를 사용해 회원관리하는 방법을 순서도를 통해 정리해 보세요. 1. Client -> Server : 회원가입에 필요한 정보 (username, password, email 등) 2. Server (회원가입 처리) 중복 회원 ID 확인

leejincha.tistory.com

 

[04] 주특기 3주 프로젝트 마무리

 

[04] 주특기 3주 프로젝트 마무리

이번주는 미경님과 유리님과 한 조가 되서 다른것 걱정없이 코딩에만 집중할 수 있는 한 주 였다. 비전공자에 제로베이스인 우리 셋이 팀이라 오류가 터질때마다 사실 백지장을 맞들면서 해결

leejincha.tistory.com

 

 

 

ArrayList 댄스라고 들어보셨나

 

 

1. 어려웠던 부분 : 오늘은 혼공자책과 자바 객체지향의 원리와 이해 책을 보면서 자바 기초에 대한 부분을 더 다지는 시간을 가졌다. 객체지향이라는 개념을 접한지 벌써 한달이 지났지만 여전히 참 애매하고 어렵다. 객체 = 유일무이한 존재, 각각의 객체가 갖고있는 공통된 특징을 클래스라고 한다. 클래스 설계는 어디까지를 공통된 특징으로 삼을 것인가에 대한 고민이 필요한 것 같다. 나를 하나의 객체라고 생각했을때, 어떤 클래스 집단에 속하고 싶은지 생각해 보게 되는 그런 개념 공부의 날이었다.

 

2. 느낀 점 : 오늘 팀원분들과 함께 코드리뷰를 했는데, 생각보다 시간이 오래 걸렸다. 다들 한줄씩 친절하게 설명을 해주셔서 다시한번 흐름을 파악할 수 있었던 것 같다. 요즘 미국 빅테크 기업들에서 대규모 layoff가 일어나고 있는데, 실제로 내가 구독하는 유튜브 두명 모두 해당 대상자가 되셨다는 영상을 봤다. 개발자 하면 먹고살 걱정 안하겠지 했는데, 시장경제가 안좋으니 마냥 그렇게 생각할 수는 없겠구나 라는 생각이 들었다. 중꺾마 라고 했던가. 어쩌겠어 일단 닥친 것 부터 해야지. 인생의 시련은 앞으로의 성장을 위한 불가피한 요소인 것 같다. 매일이 쉽지 않지만, 나를 더 믿어보자.

 

3. 새로 알게 된 내용 : 트랜잭션에 대한 공부를 했다. 그리고 트러블슈팅 정리를 통해 다음 코드 작성땐 통해 어떤 부분을 유의해야 하는지 정리할 수 있었다. 

 

4. 셀프칭찬 (오늘 잘한 일) : 코드 리팩토링을 통해 중복되는 Dto를 하나로 합쳐주고, 클래스명이나 메소드 이름도 나중에 쉽게 알아볼 수 있도록 리팩토링하는 작업을 해주었다. 그리고 추가 작업이었던 회원탈퇴 부분을 구현했다. 미경님의 조언이 있었지만, 이 과제를 하면서 처음으로 내가 스스로 코드를 구현한 것 같아서 헛공부는 아니었구나 라는 생각이 들었다. 스스로 알게모르게 어느정도 CRUD를 이해하고 있다는 생각이 들어서 마음이 어제보다 가벼워 졌다.

 

5. 내일 할 일 : 심화주차 강의자료 정리 마무리(Testcode, 예외처리), 언어스터디(chap 11), 내코드 + 다른사람 코드 보고 손코딩 다시해보기

 


[오늘 공부한 부분]

 

[27] JAVA 기초 복습

 

[27] JAVA 기초 복습

과제를 수행하다 보니 자바 기초가 너무 부족한 것 같아서 다시 한번 개념 정리를 하고 넘어가려 한다. 객체란 무엇이고 클래스는 무엇이며, 필드 생성자 메소드의 역할을 다시 정리해보자. 객

leejincha.tistory.com

[03] 트러블슈팅

 

[03] 트러블슈팅

[목차] 1. Response 에 null 값이 뜨는 문제 2. 순환참조 오류 3. cascade 연속성 전이 4. @Transactional + 이번 과제 관련 추가 (발생 가능성이 있었던 문제) 1. Response 에 null 값이 뜨는 문제 1. 이슈 위와 같이

leejincha.tistory.com

[27] Transaction

 

[27] Transaction

1. Transaction(트랜잭션) ① 트랜잭션(Transaction)의 필요성 여러 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션(Transaction) 이다. 트랜잭션은 더 이상 쪼갤

leejincha.tistory.com

 

+ Recent posts