항해99 WIL 1주차

Denia·2022년 3월 13일
0

항해99 - 6기

목록 보기
3/15

1. 항해 시작 후 지금까지의 후기

1. 사전 기간

1. 2월 25일 항해 면접 합격

2월 25일에 사전 면접을 보고 합격 후 항해99로 공부를 시작한지는 약 2주 ,
항해 시작일(3월 7일)로부터 본격적으로 공부를 시작한지는 약 1주가 지났다.

사전 면접을 보고 합격하게 되면 항해 시작일 전에 사전 테스트가 있다고 알려주고 사전 테스트를 대비해서 공부를 하라고 알려준다.
(※여기서 떨어지면 항해를 시작할 수가 없기 때문에 바로 부랴부랴 웹개발 종합반 인강을 보기 시작했다.)

2. 사전 테스트 준비

나는 사전 면접을 보고 합격한 날짜가 시험치기 5일 전이라서 테스트를 급하게 준비할 수 밖에 없었다.
테스트 준비로는 다음과 같이 했다.
1. 웹개발 종합반을 실습까지 따라하면서 1번 완강
2. 실습은 제외하고 웹개발 종합반을 다시 한번 첨부터 끝까지 완강 하면서 모르는 내용은 정리 및 복습했다.

5일 안에 완강을 2번 하려니 정말 시간이 빠듯했다.
(※그런데 생각보다 사전 테스트가 너무나도 쉽게 나와서 당황스러웠다.)

3. 웹개발 종합반 후기

그래도 2번 완강을 한 덕분인지 웹에 관해서 기초를 잘 쌓을 수 있었다.
확실히 웹에 관해서 처음부터 끝까지 실습을 하면서 따라해보니 어떻게 굴러가는지에 대해서 감을 잡을 수 있었다.
사용한 도구 : (Front : HTML , CSS , Bootstrap , JS) , (Back : Flask(python), MongoDB , AWS EC2)

4. 사전 테스트 합격 후 진행 과정

사전 테스트를 치면 다음 날 합격을 알려주는데 그러면 그 날 주특기를 정하게 된다.
[FE : React / BE : Node.js , Spring] 3가지 중 택 1

주특기를 정하고 나면 본격 시작일인 3월 7일까지는 따로 어떠한 요청이 없었다.
그래서 나는 Spring을 주특기로 할 생각이기 때문에 Java의 정석 책 사둔게 있어서 해당 책을 읽으며 공부했다.


2. 본격 항해 시작

1. 미니 웹 프로젝트

3월 7일 오전 9시 에 Zoom으로 모이라고 하는데 모이면 OT를 진행하게 된다. OT에서 커리큘럼도 설명해준다. 자세한 커리큘럼은 항해99 홈페이지를 참고하면 될 것 같다.

그리고 나서는 반별로 모은 후에 반 과 팀을 알려주고 3월 10일까지 팀별로 웹 미니 프로젝트를 진행하라고 알려준다.
(※이때 진짜 당황스러웠다.)

1. 오늘 처음 본 사람들 + 2. 웹에 관해서 아는 거라곤 웹개발 종합반 수업이 끝 + 3. 촉박한 시간 3가지가 합쳐지니 정말 막막했다.

처음 만났지만 하나의 목표를 위해서 우리는 긴 시간 토의를 진행했고 "영화 추천 리뷰 사이트"를 만들기로 결정하고 나는 거기서 게시판 관련 기능들을 맡아서 작업 하기로 했다.

하면서 크게 느낌점은 간단해 보이는 웹사이트 라도 수많은 노력과 시간이 소요 되는 것을 깨달았다. 대기업 사이트들은 정말 👍

하루에 14 ~ 15시간 가까이 해당 프로젝트에만 시간을 쏟았고, 처음보는 이슈 , 문제 가 생기면 구글링 + 추가로 제공된 인강 + 팀원들의 도움 등등 할 수 있는 것은 다 해가면서 공부를 하며 프로젝트를 진행했다.
(※결과를 미리 말하면 , 다행스럽게도 미니 프로젝트는 성공적으로 잘 끝났다.)

그래도 끝내고 나니 정말 뿌듯했고 팀원들과는 큰 유대감이 생겼다. 역시 고생을 같이 해본 사람과 빨리 친해지는 것 같다.
예를 들면 훈련소 동기?

3일짜리 프로젝트도 이정도인데 6주 짜리 실전 프로젝트를 하게 되면 도대체 어떤 감정을 느낄지 아직 상상이 가지 않는다.

2. WIL 정리

1. 이번주 배우거나 공부한거

1. Git

  • Pull-Request

    • 평소에 혼자 Git을 썼었어서 혼자 하는 작업에는 익숙하지만 협업은 처음이라 Pull-Request 가 익숙하지 않아서 처음에 고생을 좀 했다.

2. 미니 프로젝트 관련 (HTML , CSS , HTML, Bootstrap , Jinja2 , Flask(python) , MongoDB , 크롤링 , JWT , API)

  • 게시판 제작
    • 각 페이지별로 담당해서 작업을 진행하기로 했기 때문에 게시판 하나를 만들게 되면서 웹페이지 + 서버 + DB + 크롤링 모두를 나 혼자서 작업을 진행했다.
      1. 게시판 페이지 작성
      • DB에 저장되어 있는 글을 불러와서 표시
      • 페이지 네이션 구현
      • 검색기능 구현
      1. 게시판 글쓰기 페이지 작성
      • 로그인 되어 있는지 확인 (JWT 사용) , 로그인 상태에서는 User_ID도 받아옴
      • 영화 사이트 URL을 기입하면 해당 URL에서 데이터를 크롤링
      1. 게시글 페이지 작성
      • 목록 버튼 , 이전 글 버튼 , 다음 글 버튼
      • 게시판에서 글 제목을 클릭하면 해당하는 게시글 페이지로 이동
      • 게시글 페이지 에서는 해당 글의 글 번호를 조건으로 사용하여 DB에서 데이터를 받아와서 뿌려줌
      • 해당 글에 리뷰가 달려 있으면 리뷰도 같이 가져와서 아래에 붙여줌
  • JWT (JSON Web Tokkens)
    • 내가 로그인 담당이 아니라서 공부를 많이 한 부분은 아니지만 기본적인 내용은 공부를 했다.
    • JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다.
    • JWT는 서버와 클라이언트 간 정보를 주고 받을 때 Http 리퀘스트 헤더에 JSON 토큰을 넣어서 전달. 서버는 별도의 인증 과정없이 헤더에 포함되어 있는 JWT 정보를 통해 인증을 확인함.
    • JWT는 API에 액세스하려는 클라이언트를 인증하는 데 사용할 수 있으므로 보통 RESTful API를 보안하는 데 사용됩니다.
    • 이때 사용되는 JSON 데이터는 URL-Safe 하도록 URL에 포함할 수 있는 문자만으로 제작
    • JWT는 HMAC 알고리즘을 사용하여 비밀키 또는 RSA를 이용한 Public Key/ Private Key 쌍으로 서명할 수 있다.
  • API (Application Programing Interface)
    • API는 서버와 클라이언트 사이의 대화 규칙 정도로 이해 하면 좋다.
    • API를 사용하면 서로 정해진 규칙을 사용하기 때문에 업무가 효율적이 된다.
    • 클라이언트가 서버에게 어떤 요청을 했을때 서버가 어떤 처리를 해서 클라이언트에게 보내 줄 것인지를 결정하는 부분

2. 느낀 점

1. WEB은 생각보다 많이 어렵다.

  • 미니프로젝트를 진행하고 나서 가장 크게 느낀 점은 사이트를 제작하는 것이 생각보다 쉬운일이 아님을 깨달았다.
    • 특히 힘들었던 점 : HTML , CSS , JS => 해당 언어들에 대해서 지식이 부족한 상태에서 일단 작업을 진행하려고 하니 막히는 부분이 너무 많았다. 그러다보니 어쩔수없이 그냥 부딪혀 나가면서 코드를 계속해서 수정해가며 귀납법으로 방법을 찾는 것이 많이 힘들었고 짜증났다. 특히나 HTML 과 CSS 는 내가 원하는대로 너무 안움직여줘서 너무나 하기 싫은 작업이었다.
      (Ex. 어떤 요소를 가운데 정렬이 되게 하거나 오른쪽으로 정렬을 시키고 싶은데 자꾸 이상하게 위치하거나 아무리 코드를 수정해도 움직이지 않는다 던가 .. 어떤 요소 옆에 다른 요소를 평행되게 놓고 싶은데 자꾸 위 아래로 간다던지 하는 그런 부분들.)

2. 여러 언어를 동시에 하니까 정말 헷갈린다.

  • 한번에 여러 언어를 같이 스터디 하면서 프로젝트를 진행하니까 여러 언어들의 문법이 섞이고 혼재되어서 이상한 문법으로 코드를 작성하는 '내' 가 있었다. 해당 부분 때문에 프로젝트 진행하는데 시간이 더 걸린 것 같다.
    (Ex. Ajax , Python , CSS , Jinja2 , jQuery 등등)
    - FE 하면서 BE도 하니

3. 그래도 내가 하는 작업들이 바로 바로 눈에 보여서 그런지 작업이 진행 될 수록 동기부여가 잘 되었다.

3. 스스로에게 아쉬웠던 점

1. 남에게 설명을 할 때 쉬운 말로 풀어서 잘하지 못한 점

  • Git에 관해서 남에게 설명

    • 팀원들이 모두 Git이 처음이라고 해서 Git 에 관해서 설명을 해주는데 설명을 하면서 어떻게 해야 쉽게 말할 수 있을 지 고민을 많이 한 것 같다. 난 분명히 Git에 관해서 이해를 했다고 생각했는데 남에게 설명을 잘 못하는 것을 보니 나의 이해가 부족하다는 생각이 들었다.
  • 알고리즘 문제 풀면서 타입 변환 과 코너 케이스를 더욱 더 신경쓰지 못함.

4. 공부한 내용 중 기록해두고 싶은 부분

1. pymongo - 페이지 네이션

  • MongoDB에는 페이지네이션을 지원하기 위해서 Skip 과 Limit 함수가 있다. 해당 메서드를 잘 이용하면 쉽게 페이지 네이션을 구현 할 수 있다.
profile
HW -> FW -> Web

0개의 댓글