(1) WIL(Weekly I Learned) - 14마지막 주차

  • 모든 일정을 끝내고 이력서, 포트폴리오, 자기소개서를 작성하는 주차가 되었습니다.
  • 기본적인 포맷은 주어지며 항해99를 하면서 또는 개인적인 경력을 개개인이 작성하는 방식으로 진행됩니다.

(2) 일정

  • 5/29 ~ 6/4 - 이력서, 포트폴리오 작성 및 모의면접 자기소개서 작성
  • 6/3 ~ 4 - 협력사(일부) 모의면접 
  • 6/4 18:00 - 항해99 수료식
  • 6/5 제출마감, 6/7 ~ 6/9 오후 예정 - 이력서/포트폴리오/자소서 리뷰(제출인원 한에서 3개씩 뽑아 전체적인 피드백 할 예정)
  • 6/9 19:00 ~ 20:00 - 김병욱 멘토님 취업꿀팀 특강
  • 6/9 - 모의면접 서면 피드백 공유
  • 6/14 18:00 까지 - 3차 협력사 라인 지원
  • 6/21 18:00 까지 - 2차 협력사 라인 지원
  • 6/28 18:00 까지 - 1차 협력사 라인 지원

(3) 수료증 및 상장

수료증
상장


(4) 느낀점

  • 모의면접을 한번 경험함으로써 '아직 부족한 점이 많구나'라는 것을 깨달았습니다. 지금까지 프로젝트를 진행하면서 만드는것에는 익숙해져 있지만, 이론적으로 어떻게 돌아가는지에대해 공부해야할 필요성을 느꼇으며 항해99가 끝나더라도 열심히하는 항해99 멤버들과 이어서 공부를 하기로 하였습니다.
  • 수료식 당일 항해99 크루원 분들의 투표를 통해 여러 분야의 상장받을 분들이 선정되었습니다. 그중에 하나의 상을 받아 지금까지 열심히 했구나 느낄수 있어 좋았고 알아주신분들이 있다니 너무 감사드립니다.
  • 이력서, 포트폴리오, 자기소개서도 중요하지만 코딩테스트, 기술면접도 매우 중요하기에 앞으로 원하는 곳을 위해 열심히 노력하겠습니다.

(1) WIL(Weekly I Learned) - 13주차

  • 이전 9주차 ~ 13주차 까지는 최종 프로젝트를 이어 진행합니다.
  • 프론트(React) 3분 백엔드(Spring) 3분 디자이너 1분으로 최종 프로젝트를 진행합니다.
  • MVP가 완성되어 배포 후 유저 피드백을 받고 유지보수를 하고있습니다.

(2) 일정

  • 5/25 4조(10:45 ~ 11:00) - 1차 리허설 
  • 5/26 19:00 ~ 20:00 - 핵클 협력사 발표
  • 5/26 20:00 ~ 21:00 - 이큐브랩 협력사 발표
  • 5/28 14:00 ~ 14:30 - 자가리허설
  • 5/28 15:00 ~ 17:00 - 협력사 초청 발표회

(3) 배운점

  • 최종 프로젝트 유지보수(크롤링 수정)
  • Traivs CI(개인공부)
  • AWS CodeDeploy(개인공부)

(4) 최종 프로젝트


(5) 느낀점

  • 드디어 최종 프로젝트까지 잘 마무리되었습니다. 여러 피드백이 있었고, 크롤링 대상인 사이트 UI가 바뀌는 등 생각지도 못한 부분에서 코드 수정이 필요하여 당황하였습니다. 그래도 처음 크롤링을 만들때 처럼 하나하나 로그를 찍어가며 문제 없이 수정하여 이런게 유지보수인가? 라는 생각이 들었습니다.
  • 개발자 6명, 디자이너 1명을 이루어져 앞으로 경험하기 힘든 너무 값진 경험이였고, 좋게 마무리가 되어 안심이되었습니다.
  • 다음주엔 협력사들과의 모의면접 및 이력서 제출만 남았습니다. 마지막 주차인만큼 더 열심히 하여 마무리를 열심히하겠습니다.

 

(1) WIL(Weekly I Learned) - 12주차

  • 이전 9주차 ~ 13주차 까지는 최종 프로젝트를 이어 진행합니다.
  • 프론트(React) 3분 백엔드(Spring) 3분 디자이너 1분으로 최종 프로젝트를 진행합니다.
  • MVP가 완성되어 배포 후 유저 피드백을 받고 유지보수를 하고있습니다.

(2) 일정

  • 5/13 자정까지 - 팀 별 중간 결과물 제출
  • 5/15 18:00 ~ 19:00 - 마케팅 특강
  • 5/19 19:00 ~ 20:00 - 데이터라이즈 협력사 발표
  • 5/19 20:00 ~ 21:00 - 스토리시티 협력사 발표
  • 5/21 - 팀별 면담
  • 5/26 - 1차 모의발표
  • 5/27 - 2차 모의발표 및 녹화

(3) 배운점

  • SonarLint 정적 분석도구 사용법
  • jacoco(java code coverage tools) 사용법
  • 쓰레드 관리
    • ExecutorService
    • Executors
    • Future
    • Runnable

(4) 최종 프로젝트


(5) 느낀점

  • 피드백을 받으면서 사람마다 보는 눈, 원하는 느낌이 많이 다르다는 것을 느꼇습니다.
  • 마케팅을 하면서 유저개입이 어렵게 되는것을 많이 느꼇으며 유저들이 들어오더라도 설문참여율이 엄청나게 저조한것을 보고 서비스를 운영하는것이 힘든거구나 다시한번 깨달았습니다.
  • SonarLint를 사용하면서 내 코드내에서 불필요한 부분을 많이 알 수 있어 코드를 개선할 수 있어 좋았습니다.
  • 매일 크롤링을 돌리는 시간이 100분 정도의 소요되었습니다. 스파르타 코딩클럽 대표님께서 스레드를 사용하여 시간개선을 할 수 있다고 알려주셔서 사용한 결과 20분내에 크롤링이 끝나 놀라운 결과를 얻을 수 있어 만족스러웠습니다.

(1) WIL(Weekly I Learned) - 11주차

  • 이전 9주차 ~ 13주차 까지는 최종 프로젝트를 이어 진행합니다.
  • 프론트(React) 3분 백엔드(Spring) 3분 디자이너 1분으로 최종 프로젝트를 진행합니다.

(2) 일정

  • 5/13 자정까지 - 팀 별 중간 결과물 제출
  • 5/15 18:00 ~ 19:00 - 마케팅 특장
  • 5/27 자정까지 - 팀 별 최종 결과물 제출

(3) 배운점

  • NginX 사용한 무중단 배포 (개인 공부)
  • SNS마케팅 방법

(4) 최종 프로젝트


(5) 느낀점

  • 11주차 중간점검 MVP가 나왔습니다. 지인, SNS 등을 통하여 홍보를 하며 생각지도 못햇던 오류, 불편사항 등을 피드백 받아 유지보수 및 기능 개선을 할 예정입니다.
  • 좋은 팀원들을 만나 저번주차에서 예상했던 대로 실제 서비스를 배포하여 만족스러웠습니다.
  • 많은 조에서 MVP단계를 진행 중이여서 항해99에서 마케팅 홍보하는 강의를 해주셨는데 몰랐던 접근을 어떻게 해야하는지 예시까지 들어가며 설명 해 주셔서 이해도 잘 되고 도움이 많이 됬습니다.

 

(1) WIL(Weekly I Learned) - 9~10주차

  • 4/23일 드디어 기다리던 마지막 주차인 최종 프로젝트가 시작되었습니다.
  • 팀은 총 7인 백엔드(Spring) 3분(저 포함), 프론트엔드(React) 3분으로 구성되었으며 최종프로젝트 인 만큼 디자이너 1분도 포함되어 프로젝트를 진행하였습니다.

(2) 일정

  • 4/25 - S.A 제출
  • 4/26 12:00 ~ 17:00 - 팀 별 시작 면담
  • 4/30 10:00 ~ 15:00 - 팀 별 1차 면담
  • 5/5 19:00 ~ 20:00 - 미소 협력사 발표
  • 5/8 17:30 ~ 18:30 - 미니프로젝트 코드기반 코드리뷰 (이태훈 튜터님)
  • 5/13 자정까지 - 팀 별 중간 결과물 제출
  • 5/27 자정까지 - 팀 별 최종 결과물 제출

(3) 배운점

  • WebDriver를 이용한 크롤링
  • JPA와 Pageable을 이용한 페이징 처리
  • nativeQuery
  • JPQL
  • Junit5 TestCode 작성
  • @Scheduler

(4) 최종 프로젝트


(5) 느낀점

  • 최근 항해99에서 만난 사람들과 오프라인에서 만났다. 다들 시간이 없어 일요일에 약속을 잡아 오랜만에 회고록을 쓰게 되었습니다... 반성하는 시간이 되네요.
  • 최종 프로젝트는 미니 프로젝트가 끝나기 전에 얘기를 맞췄던 분들과 팀이 구성이 되었고 거기에 더해 프론트 한분, 백엔드 한분이 추가되어 팀이 결정 되었습니다.(디자이너분은 팀 결정과 함께 스파르타에서 연결 시켜주셨습니다.)
  • 최종프로젝트가 진행되면서 이전에 신경쓰지 않았던 보안부분에 대해 http -> https로 변경하는 등 많은 신경을 쓰게 되었습니다. 또한 무중단 배포를 통하여 서비스가 끊기지 않고 업데이트를 할 수 있도록 설계를 하였습니다. 어려운 기능보다는 사용자 경험, 완벽한 기능을 만드는 것에 초점을 두고 만들어 이전 프로젝트에 비해 적은 스코프를 가지고 만들었지만 시간은 더 들었습니다.
  • 다음주가 되면 실제 서비스를 배포할 가능성이 높아 많은 기대를 하고있습니다.

(1) WIL(Weekly I Learned) - 7~8주차

  • 4/9일 항해를 시작한 후 처음으로 프로젝트 진행 기간이 2주인 미니 프로젝트 주차가 시작되었습니다.
  • 팀은 총 4인 백엔드(Spring) 2분(저 포함), 프론트엔드(React) 2분으로 구성되었으며 다시 팀장을 맡게되었습니다.
  • 이전 클론코딩에서의 부족함을 느낀분들을 위해 캐치업 조가 새로 생겨 프로젝트 조, 캐치업 조를 본인이 선택 하여 들어갈 수 있도록 변화가 생겼습니다.

(2) 일정

  • 4/9 - S.A 제출 / 주제 선정 / 와이어프레임 / API설계 / 중간점검 목표 / 2주 진행 계획
  • 4/10 - 튜터 서면 피드백
  • 4/14 - Deer, 알파카 협력사 발표
  • 4/16 - 팀 별 중간체크 / 발제 없음1) WIL(Weekly I Learned) - 7주차
  • 4/22 자정까지 - 결과물 제출
  • 4/23 10:00 ~ 11:00 - 둘러보기
  • 4/23 11:00 - 실전프로젝트 발제

(3) 배운점

  • Web Socket 통신을 이용한 채팅
  • Embedded Redis 사용
  • Spring Security 와 JWT 혼합 사용
  • HtmlEmail객체를 이용한 Email 보내기
    • 비밀번호 찾기를 위해 사용
  • 카카오 소셜로그인
    • 프론트엔드에서 처리 후 카카오에서 받은 Token을 백엔드로 넘겨주어 해당 유저 정보를 DB에 저장 및 JWT 생성 후 프론트엔드로 새로 생성된 Token을 발급

(4) 미니 프로젝트


(5) 느낀점

  • 다들 자신의 주특기에 자신있는 분들을 만나 프로젝트를 순조롭게 진행 할 수 있어 4/16 중간체크 이전 까지 주요 기능인 채팅을 완성할 수 있었습니다.
  • 지금까지 정확한 시간계획 없이 프로젝트 진행, 주특기 공부 등을 하고 있어 정리가 잘 안되는 느낌을 받아 항해 99에서 만난 분들과 시간을 정해 알고리즘 공부를 하기로 하였습니다. 21:30 ~ 23:30 까지 Python 을 이용하여 프로그래머스, 백준 알고리즘 을 풀어 서로 도움되는 시간을 가질 수 있고, 지속적으로 알고리즘을 공부함으로 알고리즘에 익숙해 질 수 있을 것 같습니다.
  • 채팅을 만들며 기본 CRUD를 사용하는 것이 아닌 WebSocket통신을 접할 수 있어 알림, 채팅 등 실시간으로 이루어지는 것에 대해 조금이나마 이해할 수 있었습니다. 아직 Redis에 대해서는 더 공부해야 할 필요성을 느꼇습니다.
  • 처음 WebSocket을 이용하여 채팅을 구현한 것이여서 기분이 매우 좋았으며, 팀원분들과 직접 구현한 채팅 페이지에서 채팅을 하며 소소한 즐거움을 얻을 수 있었습니다.
  • 카카오 소셜로그인은 심화 Spring강의에서 한 프로젝트 안에 백엔드, 프론트엔드가 공존할때에만 구현한 경험이 있어 이를 토대로 소셜로그인을 React와 같이 하려 했지만 Redirect하는 부분에서 Token을 어떻게 넘겨줘야하는지에 문제가 있어 프론트엔드에서 카카오Token을 백엔드로 넘겨주는 방식으로 해결하였습니다. 이게 올바른 방법인지는 아직 해답을 찾이 못하였으나 마지막 코드리뷰때 문의할 예정입니다.
  • 비밀번호 변경하는 방법을 메일보내는 것을 통해 구현하였습니다. 비밀번호 찾기 시 랜덤한 인증번호를 메일과 프론트엔드에 보내어 인증번호를 올바르게 입력하였을때 비밀번호를 변경 할 수 있는 페이지에 나오게 하였는데, 그리 어려운 기능은 아니였지만 Spring boot 코드에서 메일을 보내는 기능을 추가 하여 재밌는 경험이였습니다.

(1) WIL(Weekly I Learned) - 6주차

  • 4/2일 아쉬웠던 주특기(Spring) 심화가 끝나고 드디어 기다리던 클론코딩 프로젝트가 시작되었습니다.
  • 팀은 총 4인 백엔드(Spring) 2분(저 포함), 프론트엔드(React) 2분으로 구성되었으며 또 다시 팀장을 맡게되었습니다.

(2) 일정

  • 4/2 1차멘토링 전까지 - S.A완료
  • 4/5 ~ 4/6 - 2차 멘토링
  • 4/8 - '쌀 팔다 개발자' 김병욱님 강연
  • 4/8 자정까지 - 클론코딩 결과물 제출
  • 4/9 10:00 ~ 11:00 - 다른조 클론코딩 둘러보기
  • 4/9 11:00 - 미니프로젝트2 발제

(3) 배운점

  • S3를 이용한 이미지 업로드
  • CORS - 타 IP에서 접근을 허용
  • Spring Boot 에서의 JWT 토큰 사용
  • @Valid - 유효성 검사
  • Git - Pull Request
  • Controller 예외처리 및 에러 메세지 보내기

 

 


(4) 클론 코딩


(5) 느낀점

  • 처음으로 백엔드와 프론트엔드로 나누어 프로젝트를 진행하는 경험을 할 수 있었습니다. 혼자만의 속도가 아닌 팀원 전체의 속도에 맞추다보니 완벽하게 프로젝트를 마무리 하지 못하여 아쉬움이 있었지만 그래도 여러사람과의 협업을 통해 프로젝트를 진행 해보았다라는것에 의미가 있었습니다.
  • 매 주차마다 제출하는 단원평가에 코드리뷰, 피드백이 없다 등 아쉬움점을 적어서 인지 스파르타에서 14시~16시에 튜터님이 상시 대기하며 질문 받는 코너가 새로 생겨 프로젝트를 진행 하다 막히는 부분이나 이론상 이해가 안되는 부분이 있으면 물어볼 수 있어 좋았습니다.

(1) WIL(Weekly I Learned) - 5주차

  • 3/26일 이전 주특기(Spring)기본을 끝마치고 5주차 주특기(Spring)심화 가 시작되었습니다.
  • 이전과 달리 두분 다 처음보는 분들과 팀원이 되었으며, 랜덤으로 지정된다는 팀장역할을 처음 하게되었습니다.

(2) 일정

  • 3/29 (13:30 ~ 16:30) - 소규모 면담 (신청자 한에서)
  • 3/31 (19:00 ~ 20:00) - 항해톡 (SSL, JWT, index(database), ORM) 크루원 중 신청자 발표
  • 4/1 까지 숙제 완료!
  • 4/2 (~10:00) - 클론 코딩 발제

(3) 배운점

  • Controller
    • Servlet
    • Controller
    • RestController
  • DI
  • Bean
  • IoC
  • 스프링 시큐리티
    • 소셜로그인(카카오)
    • OAuth
  • 테스트 케이스
    • JUnit
    • Mock, Mockito
    • 통합 테스트
  • 영속성

(4) 기본 과제

  • 조건
    • 회원가입
      • 닉네임, 비밀번호 조건에 안맞는경우 에러메세지
    • 로그인 및 검사
    • 소셜로그인
    • 게시글 / 댓글 조회
    • 댓글 작성 / 수정 / 삭제 (로그인 및 자기가 작성한 사용자만)
    • 회원가입 테스트 코드 작성
  • 링크 - loafly.shop/ (현재 닫은 상태)

(5) 느낀점

  • 심화에서는 기본에서 배웠던것에 대한 전체적인 리뷰와 Servlet을사용한 코드, Controller와 RestController를 사용한 코드 등 여러 방법에 대해 배웠습니다.
  • Spring 시큐리티를 이용한 로그인 기능과 소셜로그인 기능을 구성 해 봄으로써 Spring에서 로그인은 기본적으로 도움을 주는 기능들이 있구나 느꼇습니다.
  • 전체적으로 강의 내용이 코드를 전체복사, 붙여넣기 방식으로 진행되어 이해하지 못한부분도 많이 있어 다른강의를 보거나 개인적으로 공부하여 스프링에 대해 더 자세히 알아야 할 필요가 있다고 느꼇습니다.
  • 과제를 해도 코드리뷰, 과제답안 등 피드백이 없어 과제를 잘했는지 잘 못했는지 감을 잡을 수 없어 아쉬움이 있습니다.

(1) WIL(Weekly I Learned) - 4주차

  • 3/19일 이전 알고리즘주차(2주)를 끝마치고 4주차 주특기주차가 시작되었습니다.
  • 주특기(Spring)을 선택한 저는 Spring을 선택한 분들과 같은조가 되었다.
  • 이제 본격적인 주특기를 배워봅시다!

(2) 일정

  • 3/23 (16:00 ~ 18:00) - 소규모 면담 (신청자 한에서)
  • 3/24 (19:00 ~ 20:00) - 항해톡 (try-catch예외처리, Git Github, 쿠키 세션 캐시, DNS) 크루원 중 신청자 발표
  • 3/25 까지 숙제 완료!
  • 3/26 (~10:00) - 주특기 심화 발제

(3) 배운점

  • IntelliJ
  • 자바
    • 자바 기초문법
    • 클래스
    • private, public
    • Getter, Setter
  • Gradle이란?
  • RDBMS
  • Spring boot
    • H2
    • JPA
    • Lombok
    • DTO
    • Controller
    • Service
    • Repository
  • ARC

(4) 기본 과제

  • 조건
    • 서비스 완성
      • 전체 게시글 목록 조회 페이지
      • 게시글 작성 페이지
      • 게시글 조회 페이지
    • AWS 배포
      • RDS 연결
      • EC2 배포
  • 링크 - loafly.shop/

(5) 느낀점

  • 기본적인 RestFul api 사용, IntelliJ 사용법 에 대해 익혀 간단한 게시판을 만들었습니다.
  • Spring을 배우면서 Getter, Setter 등 여러 어노테이션을 배우면서 사용에 대한 편리함을 느꼇습니다.
  • 이전 Python Flask를 이용하여 만든 경험이 있어 그렇게 어려운부분은 없었으나 RestController에서 페이지 이동하는 방법을 몰라 많은 고민을 했었습니다. 결국 Controller를 따로 추가 하여 View에 접근하는 것을 해결했습니다.
  • JPA가 Java를 SQL언어로 자동으로 번역 해주는 편리성을 가지고 있어 스프링에 또한번 반했습니다.
  • ARC를 통해 프론트엔드를 만들지 않고 api를 테스트 해볼수 있다는것이 신기했고 새로운걷을 배워 좋은 경험을 했습니다.

(1) WIL(Weekly I Learned) - 3주차

  • 3/12일 이전 2주차가 알고리즘을 이어서 3주차 알고리즘이 시작되었습니다.
  • 2주차 동안 같이 프로젝트를 진행했던 팀원분들과는 헤어지고 랜덤으로 생성된 다른 팀으로 재조정 되었습니다.
    • (2주차에서 같은조였던 분과 3주차에서도 같은조가 되었습니다.)
  • 2주차 보단 어려운 문제들로 이루어져 총 35문제를 각자의 속도로 제시된 문제들을 모두 풀면 됩니다.

(2) 일정

  • 3/12 (09:00 ~ 12:00) - 항해 99내에서 진행하는 코딩 테스트 진행(3문제) 및 코드설명(youtube올리기) 1문제
  • 3/12 ~ 3/18 - 권장요일에 맞는 문제풀이 
  • 3/17 (15:00 ~ 16:00) - 주특기 면담
  • 3/17 (22:00) - 주특기 선택 완료
  • 3/19 (09:00 ~ 12:00) - 항해 99내에서 진행하는 코딩 테스트 진행(3문제) 및 코드설명(youtube올리기) 1문제
  • 3/19 - Spring, Node.js, React, React Native 주특기가 같은 주특기끼리 조 변경

(3) 배운점

  • 알고리즘
    • 브루트포스
    • 그리디 알고리즘
    • 분할정복
    • 백트래킹

(4) 문제풀이


(5) 느낀점

  • 항해99를 시작한지 겨우 3주(21일)밖에 안지났는데 하루 최소 12시간 이상 씩 매일 하다보니 체감상 3달은 된거 같습니다. 적은 일수로 많은 것을 해내기 위해 필요한 것들만 배울 수 있도록 커리큘럼이 짜여져 있어 항해 99가 끝난 후에 어떻게 되었을지 기대가 많이 됩니다.
  • 몰랐던 알고리즘(백트래킹, 분할정복, 다익스트라)을 적용해야만 풀 수 있는 문제도 있어 혼자 고민하면서 시간을 흘러보내며 결국 인터넷을 찾아봐서 알게되었지만 문제를 해결하려고 시도한 덕분에 알고리즘에 더욱 익숙해질 수 있었습니다.
  • 2주동안 배우고 연습했던 알고리즘으로 3/20 Startup Coding Festival을 지원해 시험을 봤습니다. 4시간동안 총 6문제를 풀면되는데, 6문제 중 2문제만 정답으로 처리되고 2문제는 예제만 통과해 많이 아쉬웠고, 열받았습니다. 알고리즘 공부를 나름 열심히 했다고 생각했는데 더욱 더 열심히 해야하는 생각이 들었습니다. (지속적으로 최소 하루에 2~3문제는 풀기)
  • 다음 커리큘럼(3/19) 부터 각자 선택한 주특기(Spring)에 대해 배우게 되는데, 이제 본격적으로 서비스를 만드는 준비를 하는거 같아 설렘을 느끼고있습니다.

+ Recent posts