📌 학습내용
● Spring
○ Security (로그인 및 회원가입, OAuth)
-> 클론코딩때는 프론트엔드(React)와 사용자 정보를 주고받아야 하는데 이 경우에는 같은 방법보다는 다른 방법이 쓰일 것같다.
다른 방법들에 대해 무엇무엇이 있는지는 아직 학습된 상황이 아니라 알 수 없지만, 다음주 WIL에 정리해서 기록하려 한다.
○ @Controller와 @RestController의 차이
간단하게 생각을 하자면 RestController = Controller + ResponseBody라고 생각을 하면 될것같다.
스린이인 나는 지금 단계에서 이렇게 이해했다.
"RestController는 JSON 형식의 출력을, Controller은 String 형식의 출력을 한다"
출력되는 형태만 봤을대는 RestController가 훨씬 다양하게 나타낼 수 있었다. List, Optional<> 등등
로그인 기능을 사용할 때에도 Controller 안에 model을 parameter로 써서 넘길 값(이 경우에는 로그인 된 아이디)을 model.addattribute에 넣어 attribute value로 보내줬다. 이렇게 보내준 값은 출력값에 String으로 쓰인 html 파일에서 나타낼 수 있는데, 이때 Thymeleaf Template Engine을 사용하여서 값을 받아줄 수 있었다.
해당 개념에 대한 정석진님의 블로그 _ https://github.com/strong1133/TIL/blob/main/spring/Controller%20vs%20RestController(21-03-25).md
○ 예외처리(if ... throw ... / orElseThrow ...)
혼자서 한참을 헤맸던 부분이다.(하루정도 걸렸던것같다.)
이 내용에 대한 정리는 좀 더 필요할것같아서 다음주 WIL에 올릴 계획이다.
○ ORM(Object Relational Mapping) _ ERD
JPA를 활용한 Entity 형성시 Entity가 하나 이상일 때 서로의 관계가 있을 경우 그 관계를 나타내보려 했다.결론적으로 말하자면 완전히 실현하지는 못했다. 분명히 개념적으로는 어느정도 이해가 됐다고 생각했는데, 직접적으로 Spring에서 Database를 활용해 나타내보려 하니까 미치도록 안되었다. 함께 항해중인 강상연님의 블로그를 보니, 내가 계속 답답해했던 부분은 invalid한 빨간 밑줄이 아니라 warning 개념의 주황색 밑줄이었다고 한다. 다시 봐야겠다ㅠ
다시 볼때는 더불어서 Model 외에 어떤 카테고리를 함께 다뤄야하는지도 생각해보는 시간을 가질 예정이다.
Spting Data JPA에 대한 추가정보 _ 강상연님 블로그 글 https://sanyoni.postype.com/post/9544578
📌 느낀점
● 어렵다.
- 이번주 강의 진행은 지난주에 사용했던 기능들에 대해 하드코딩의 형태로 비교 대조를 하면서 진행이 됐다.
짤막한 annotation 등으로 사용했던 기능들이 사실은 어떤 순서의 코드들인지 볼 수 있었는데, Java라는 언어에 익숙하지 않아서 그런지 둘의 관계성이라던가 각각의 코드에 대한 이해도가 좋지 못했다고 느꼈다. 이대로 가다가는 도저히 안될것같단느 마음에 자바를 별도고 공부하고 있는 그룹에 함께 할 수 있는지 물었다. 돌아오는 주부터는 게으름 싹 오려내고 주변의 부지런한 동료들 모습 보면서 많이 닮아가도록 해야겠다.
● 성장통
- 주어진 단위시간당 내가 모르는 것이 많아질수록 주변 사람을 통한 도움이 간절해지는걸 느꼈다. 하지만 이는 대학시절 솔루션을 보는 것과 같이 나에게 유익이 하나도 없다는 반문을 하면서 가급적 최대한 내가 한참 고민하고 해결해보려는 연습을 하고있다. 나뿐만 아니라 조원들과 이야기를 해도 같은 상황과 고민으로 씨름하고 있는게 보인다. 언제까지나 손을 빌릴 수는 없으니 내가 스스로 최대한 잘 정리해두는게 모범답안이 아닐까..
● Good Viber
- 나는 주변에 어떤 사람일까? 나는 어떤 가치를 전해줄 수 있을까?
이런 생각에 늘 사로잡혀있다. 여기서의 이런 생각은 나라는 자아를 건강하게 유지하는 가운데 주는 영향을 생각하는 것이다.
첫주부터 늘 주변 사람들에게 내가 도움을 줄 수 있는 그런 상상을 해오는데, 현실에서의 나는 늘 반대의 위치에서 도움을 바라고 있다.
푸념하면서 찡찡대는건 아닌지 익명 시트로 피드백좀 받아보고싶은 그런 마음이다.
주변 사람들이 뿜어내는 바이브가 좋은지 나쁜지가 나의 하루에 큰 영향을 준다고 느낀다. 항해를 하면서는 더더욱 그런것같다. 지금 굿바이브를 떠올렸을때 생각나는 사람들이 있다. 그분들의 장점을 닮아가고싶다.
📌 아쉬웠던 점
● 강의에 대한 연속성이 많이 부족했다.
- 가장 두드러진 점으로는 튜터님이 바뀌었고, 그에 따라서 강의 진행방식이 너무 다르게 느껴졌다. 흐름에 대해 설명해주시는 내용은 많은 도움이 되었지만, 그런 설명이 지나면 바로 코드스니펫을 가지고 전체의 코드를 붙여넣다보니 어느 부분을 다루고 있는지 수시로 놓쳐서 나중에 가서는 도대체 어느 내용으로 어디를 다루고 있는지 알 수가 없다는 느낌을 크게 받았다. 시간이야 오래 걸리겠지만 초보일수록 강사님께서 하나하나 차례대로 구현해나가시는 식의 강의진행이 훨씬 낫다는걸 깨달았다.
● 부족함을 어떤 식으로 커버할것인지에 대해 (Curation)
- 검색을 통해 나의 부족함을 채워나가는 것은 가장 대세가 되었다. 하지만 쏟아지는 인터넷상의 정보가 과연 양질의 정보라고 믿을 수 있을까? 이런 것들에 대한 정보의 객관성은 어느정도 검증된 기관이나 공식 블로그가 아니라면 아무도 보장해주지 않는다. 따라서 한 블로그의 글을 보며 따라하다가 뒤집기가 일쑤였다. 하나의 에러나 기능에 대해 이런 블로그 참고 시도의 횟수가 많아질수록 뒤죽박죽의 알수없는 코드가 되어갔다. 차라리 이럴바에는 함께하고잇는 항해 크루원들끼리 좀 더 소통을 많이 하면서 정정이라도 원활하게 할 수 있는 방향으로 진행해보고 싶다.
● 동기부여
- 항해에서의 시간이 흐를수록 크루원들과 우연한 기회로 그 사람들이 개발공부를 하게 된 배경이나 이런것들을 접할 수 있게 되는 상황이 많아진다. 그 사람들의 이야기를 들으며 내 모습을 돌이켜보는데, 과연 그만큼 열심히 준비하고있는가? 나도 좀 더 뚜렷하게 목표를 잡아야 잡생각 없이 몰두할 수 있겠다는 생각을 했다. 다른 사람과의 비교를 통해서는 자극만 솎아내고, 본질적으로는 같은 주어진 시간 단위 안에서 내 스스로의 모습을 비교하는데 초점을 두어야겠다
🧐 좀더 공부해볼 개념
- p6spy
- Slf4j
- Template Engine (Mustache, Thymeleaf 등등..)
- Hibernate
- @RequestBody
@Controller vs @RESTController- Optional String
- @Bean
- xml과 jsp
- @ModelAndView
- Servlet
- IoC(Inversion of Control)
- DI(Dependency Injection)
- JPA Repository의 findbyId vs findallbyId
- JUnit 테스트
'Computer 💻 > 항해99 ⛵️' 카테고리의 다른 글
항해일지 WIL _ Week06 (0) | 2021.04.12 |
---|---|
항해99 WIL : Week04 (0) | 2021.03.28 |
항해99 WIL : Week03 (0) | 2021.03.21 |
항해99 WIL : Week02 (0) | 2021.03.14 |
항해99 WIL : Week01 (0) | 2021.03.07 |