codestates_BE_bootcamp39

재미있었던 외부 API 도입 feat. Kakao API
해당 글은 코드 스테이츠 개인 기술 회고를 하면서 작성함 위치 서비스를 구현해야 하는 만큼 사용자의 위치 정보를 얻어야 하는 점이 이번 프로젝트의 critical task 중 하나였습니다. 처음 위치정보를 어떤 식으로 받아와야 하는 것에 대해 막연하게 “그거 그냥 카카오나 네이버 지도 api” 쓰면 될 것 같은데라고 생각하였지만 “어떻게?”라는 관점에서 보니정말 막막하였습니다. 1. 사용자 IP로 위치정보 받아오기 처음에는 IP로 확인을 하면 되지 않을까 해서 찾아본 결과, MaxMind회사의 GeoLite2라는 api를 사용하면 도시정보를 받아볼 수 있다는 걸 알게 되어 바로 도입을 해보았습니다. GeoLite2는 큰 그림에서 봤을 때 접속자의 IP를 토대로 GeoLite2 DB상에 저장된 도시정보를 ..
Pre-Project 돌아보기
약 2주간의 pre-project가 끝이 나고 바로 main-project 기간이 시작되었다. 본격적으로 메인 프로젝트를 시작하기 전에 프리 프로젝트를 진행하면서 느꼈던 점들을 한번 정리해보려고 한다. 우선 프리 프로젝트를 같이 무사히 넘길 수 있게 열심히 해주시고 부족한 팀장을 잘 믿고 따라와 주신 44조 팀원분들에게 무수한 감사를 드리고 싶다. 팀원 개개인의 실력차가 그렇게 나지 않았고 각자 실력 부분에서 부족한 부분이 많다는 공통된 생각을 처음에 공유했었다. 하지만 프리 프로젝트가 끝나고 나서 드는 생각은 비록 100% 완성을 이루진 못하였지만 열정, 의욕, 팀워크 부분에서는 정말 최고였다. 다만 각자 열심히 했었기에 남는 아쉬움 또한 매우 많았다. 팀 단위의 정리 팀끼리 정리해본 전체적인 측면에서..
3 SEPT pre-project Week2
이번 주도 순식간에 지나갔다. 부트캠프 시작하고 나서 아마 제일 시간이 빨리 지나간 주였던 것 같다. 그만큼 정신없었고 내가 뭘 하는지 모를 만큼 열심히 했던 것 같아서 후회는 없을 것 같다. 일단 프로젝트에 대해 백엔드 부분은 같은 백엔드 팀원분께서 굉장히 많은 것을 해주셔서 버스를 타게 되었다. 실력또한 좋으셔서 많이 배우고 있다. 처음에 우리가 정했었던 필수 기능 CRUD와 답변, 댓글 기능까지 어느 정도 구현이 된 것 같고 나는 좋아요 부분을 구현해보려 했으나 생각보다 많이 어려웠다. 그래도 일단은.. 좋아요와 좋아요 취소 그리고 싫어요와 싫어요 취소를 나름 구현은 해봤는데 로직이 뭔가 틀린것 같다 ㅋㅋㅋ 팀장으로서 나는 팀원들이 쾌적하게 개발할 수 있는 환경을 만들어 놓자라고 생각했어서 개인 a..
26 AUG pre-project Week1
드디어 첫 프리 프로젝트가 시작된 지 1주일이 지났다. 프리 프로젝트에서는 stackoverflow 웹 사이트를 클론 코딩 비슷하게 만들어 보게 될 예정이다. 팀이 배정이 되기 전에 엄청 떨렸었는데.. 다행히 좋은 팀원분들을 만난 것 같다. 다들 정말 열심히 해주셔서 나도 더욱 열심히 해야겠다는 생각이 들었다. 어쩌다가 팀장을 맡게 되었는데, 개발에 대한 지식이 아직 많지 않아 내가 잘 이끌 수 있을까, 못하는데 잘할 수 있을까 하는 고민이 계속되었고 지금도 계속되고 있다. 하지만 이미 엎질러진 물, 민폐가 되지 않도록 열심히 해야겠지.. 개인적으로 현재 팀장으로서의 내 역할은 물론 개발이 잘 되게 조율하는 게 제일 중요하겠지만 못하거나 결과가 잘 나오지 않아도 괜찮으니 같이 포기하지 말고 즐겁게 최선을..
section4 기술면접 정리했던것(필터,CI/CD)
필터 - 말 그대로 들어오는 HTTP 요청을 필터링하여 서블릿에 전달한다. - 클라이언트와 DispatcherServlet 사이에 필터가 존재함 - 필터는 여러 개 존재 가능하며 이를 연결한 것이 필터 체인이다. - 필터 체인에서 필터는 다운스트림 형식으로 적용되기 때문에 필터의 위치 순서가 매우 중요함. 시큐리티에서 필터 - 스프링 시큐리티에서는 "DelegatingFilterProxy"를 상속받은 "FilterChainProxy"라는 필터를 만들어 사용 - 이는 일반적인 서블릿 컨테이너는 스프링 컨테이너(ApplicationContext)의 빈을 사용할 수 없기 때문에 스프링 컨테이너와 서블릿 컨테이너를 연결하는 역할 - "FilterChainProxy"를 통해 "Security Filter"를 만들..

Section 4 돌아보기
Section 4 오늘로써 섹션 4가 끝남과 동시에 학습 관련한 커리큘럼이 끝났다. 전반적으로 Spring Security와 CI/CD 그리고 Reactive 프로그래밍에 대해 공부하는 기간이었는데 섹션 3 도 많이 힘들었었지만 이번 마지막 섹션은 더욱 어렵고 난해하게 다가왔다. 시큐리티 부분은 개념적으로 봤을 때 원초적인 부분, 예를 들어 왜 시큐리티를 써야 한다는 체감이 되었지만 이것에 대해 조금 더 들어가니 인증, 인가부터 시작해서 JWT에 대한 개념은 이해도 힘들었고 무엇보다 코드로 작성해 내는 것이 매우 힘들었다. Reactive 부분은 더 심각했는데 이해도 안 되고 와닿지가 않아서 과감하게 포기를 했었다. 그나마 AWS와 Github Action을 통해 배포 자동화를 하는 유닛은 굉장히 재미있..
12 August - Week16
오늘로써 학습에 대한 커리큘럼이 끝났다. 후.. 섹션 4도 거의 끝났다. 자바부터 스프링까지 한건 엄청 많지만 그렇다고 머리에 다 남아있다는 다른 얘기인 것 같다. 특히 최근 3일 배운 리액티브는 이해도 잘 되지 않았고 뭔가 재미가 없었다. 아마 어려워서 그렇게 느낀 것 같았는데 일단 이런 게 있고 논 블로킹 상황에서 한번 고려해 볼 만하겠다 라는 선에서 전략적으로 넘어가기로 했다. 다음 주부터는 정말로 프로젝트가 시작되는데, 스스로 준비가 된 것 같나 하고 자문한다면 아닌 것 같다고 대답할 것이다. 그래도 막상 부딪히면서 실제로 뭔가를 코드로 만들어 보는 첫 시작이기 때문에 많은 것을 배울 수 있을 것 같아서 기대가 된다. 하지만 걱정 또한 많이 되는데, 내가 이 실력으로 잘할 수 있을지, 다른 분들에..

5 August - Week15
스프링 시큐리티를 벗어나.. 잠시나마 시간적 여유가 조금 있었던 주였다. AWS에 ec2, RDS, S3 등을 사용하여 정적 페이지를 출력하는 것과 docker를 사용해서 컨테이너 만들고, 이미지 만들어서 서버 띄워보고 하는것을 했다. 그리고 오늘은 AWS Pipeline을 사용해서 푸쉬를 하면 자동으로 서버가 띄워지는 것을 학습했다. AWS부분들은 스프링 스터디에서 진행했었던 '스프링부트와 AWS로 혼자 구현하는 웹 서비스' 책 덕분에 나름 익숙한 환경에서 진행할 수 있었다. 하지만 여전히 방대한 사이즈 때문에 괜히 AWS자격증이 있는게 아니다 라는 것을 새삼 느끼게 됐다. 나중에 한번 도전해보고 싶다 ㅋ 이제 첫 프로젝트까지 딱 1주일 남았는데, 아직 부족한 부분들을 어떻게 채워야 할지 잘 모르겠다...
30 July - Week14
Section 4 시큐리티 부분은 이해 면에 있어서 그다지 순조롭지 않았다. 보안 == 매우 중요하다 는 컨셉은 잘 알고 있으면서도 코드가 잘 와닿지 않았다. 유어클래스에서 제공하는 자료의 질도 다른 섹션에 비해 떨어지는 것 같아 아쉽기도 했다. 이제 바로 또 배포 쪽 커리큘럼으로 넘어가서 시간이 부족하기 때문에 시큐리티는 큰 그림을 목표로 복습하는 선에서 넘어가야 할 듯하다. 이해가 어려워서 그랬는지 이번주는 집중을 제대로 하지 못해서 시간낭비를 많이 했다. 중간중간 딴짓하고, 유튜브보고.. 반성한다.. 요즘은 남은 시간에 인프런의 스프링 강의를 최대한 빠르게 진행하고 있다. 이제 막 HTTP부분을 완강했고 바로 MVC를 진행할 예정인데.. 시간이 너무너무 부족한 게 실감이 든다. 스터디에서 각자 진행..

Section 3 돌아보기
Section 3 종료 야속하게도 이번 섹션도 시간이 정말 빠르게 지나갔다. 자바 기반의 웹 개발에서 매우 중요한 Spring Framework를 집중적으로 배우는 섹션이었지만 섹션 1, 2와 비교했을 때 보다 이번 섹션은 차원이 다르게 어려웠고 분량 또한 더 방대하였다. 코플릿 문제도 섹션 3 들어와서 시간 내에 못 풀게 되는 문제가 많아졌고 최근 2주 정도는 거의 시간 안에 풀기는커녕 도저히 풀지 못할 문제들이 많았다. 전체적인 난이도가 급격하게 어려워졌다. 고비와 번아웃의 느낌 난이도 측면에서, 심적인 측면에서 동시에 고비였던 섹션이었다. 거기에 먼지 때문에 마음고생도 몇 주 하고 컴퓨터도 고장 나서 불편한 환경에서 학습을 하는 등 외부적인 요소에 있어서도 매끄럽지 않았다. [ 코플릿 문제 계속 못..
15 July - Week12
음... 저번 주에 이어서 이번 주는 정말 고통받는 주였다. 먼저 월요일 오후 라이브 세션 시간에 갑자기 컴퓨터 본체가 고장이 나서 AS 알아보고 처리하느라 시간을 많이 허비했다. 전원이 아예 들어오지 않는 것을 보아 파워 문제 같았다. 일단 급한 대로 노트북을 빌려서 커리큘럼은 쫓아갔는데 아무래도 내가 쓰던 환경이 아니고 다시 처음부터 환경 설정 같은 것들을 했어야 해서 정말 스트레스를 받았다. 가뜩이나 요즘 이해가 너무 안 돼서 머리가 아팠는데 엎친데 덮친 격이었다. 결국 어제 사설 AS를 통해서 수리를 했다. 돈은 좀 들었지만 공식 AS를 받자니 10일 이상 기다려야 한다는 말을 듣고 짜증이 확 솟구쳤지만.. 일단 고쳤으니 됐다고 생각한다. 학습 부분에서 돌아보면 이번 주는 정말 이해도 안 되고 너..
7 July - Week11
오늘 JPA과정이 마무리되었다. 어제 매핑 실습하는 부분은 할만했는데.. 역시 전체적으로 기능을 엮고 하는 부분에서 큰 어려움이 있었다. 페어 분과 실습을 하면서 레퍼런스 코드를 보고하기로 정하고 진행했는데도 서로 이해가 잘 되지않았다. 이파일 저파일 왔다 갔다 하는 것처럼 큰 그림에서의 흐름을 아직 잘 이해를 못 하고 있는 것 같다. 컨트롤러에서, dto, 서비스, 엔티티가 전부 따로노는 느낌인데 이 부분은 그냥 반복 숙달이 답일 것 같다. 특히 한번 시간을 내서 전체적인 흐름이 어떻게 되는지 처음 부분부터 복습을 하는게 좋을 듯. 그래도 컨트롤러가 뭔지, dto는 뭔지, 서비스는 뭔지, 엔티티의 의미 자체에 대해서는 어느정도 이해가 된 것 같아서 그것만으로도 많은 발전이 아닐까 싶다. 몸이 그다지 좋..