[WIL] 항해 1주차 회고

rara_kim·2022년 11월 20일
0

항해99

목록 보기
9/18

미니 프로젝트

Theater

  • 개발 기간:  2022년 11월 14일(월) ~ 2022년 11월 17일(목)
  • 문화예술 공연의 정보를 확인하고 관람 경험을 나누는 서비스

사전스터디때 토이프로젝트를 해보기는 했지만, 뭐가뭔지 확실한 지식이 없는 상황에서 프로젝트 기획부터 배포 까지 정신없는 4일이었다.

팀장을 하게된 팀원 한분과 나만 개발 공부를 조금 해본 적이 있었고, 나머지 두분은 개발 공부를 시작한지 한달밖에 되지 않아 시작부터 걱정이 많았다.
또한 기획단계부터 사실 엄청 매끄럽지는 않았다. API설계는 어떻게 해야하는지, DB설계는 어떻게 해야하는지 꼼꼼하게 보고넘어간게 아니라 "이정도면 되겠지"하고 넘어갔기 때문에 개발 중간중간 API URL이 변경되거나 DB 저장, 정보 가져오기 관련해서 애로사항이 많았다.
그렇지만 팀원 누구하나 못하겠다, 안하겠다는 말 한마디 없이 본인이 맡은 기능을 구현해내기 위해 정말 열심히 공부했다.
프로젝트의 결과를 떠나 이런 팀원들을 만날 수 있어서 감사했다. 대충 해보고 못한다고 떠넘기듯이 해버리는 사람들도 있기에...

내가 맡은 회원가입/로그인 기능에 대해서는 라이브세션도 진행이 되었고 샘플코드도 받아볼 수 있었기 때문에 비교적 빠르게 기능을 구현할 수 있었다.
그러나 다른 팀원분들이 많은 부분이 개발에 많은 시간이 소요되었고 생각만큼 구현이 수월하지도 않았다.
이대로가면 기한까지 완성을 못할 수도 있겠다, 덜컥 겁이 났는데 팀장님이 본인의 기능 구현을 끝내고 다른 팀원들의 부분까지 함께 코드를 보고 수정하고 구현하여 무사히 정해진 기한내에 프로젝트를 완성할 수 있었다.

그리고 개인적으로는 이번 프로젝트에서 내 깃허브에 원격저장소를 만들어 Master 브랜치를 내가 관리하게 됐는데, 덕분에 깃허브를 통한 협업을 경험할 수 있어 정말 공부가 많이 됐다.
물론 수도없이 conflict가 발생해 순탄치 않았지만... Master브랜치를 관리하며 따로 브랜치를 만들어서 내 작업코드를 병합하는 과정을 통해 깃허브를 통한 협업의 과정을 이해하게 되었다.
다음 프로젝트때 큰 도움이 될 것 같아 아주아주 뿌듯하다!!

GitHub: 미니 프로젝트 코드


프로그래밍 기초(알고리즘 주차)

미니 프로젝트가 끝나고 Chapter2.프로그래밍 기초 주차가 시작되었다.
앞으로 주특기(Spring)을 학습하기 위해서 기초를 탄탄하게 쌓고 구현력을 키워야 하는데, 이 시간을 알차게 보내고 싶다!

알고리즘 주차에는 걷기반/달리기반 으로 나뉘어 알고리즘 문제를 풀게되는데 나는 기초부터 찬찬히 하고 싶어 걷기반을 선택했다. 그리고 이틀간 문제를 풀어본 결과, 걷기반 선택은 옳았다!

1주일 전부터 프로그래머스 Level0 문제들을 하루에 3-6문제씩 꾸준히 풀어왔기에 난이도 하문제는 전혀 문제가 없었지만 난이도가 올라가자 문제풀이 속도가 더뎌지기 시작했고, 풀지 못하는 문제도 있었다.
그래도 시간을 들여 고민하고 계속해서 코드를 작성해보고 테스트를 해보면서 점차 문제를 읽고 코드로 구현해 내는 실력이 조금(아주 조금씩) 나아지고 있다고 느꼈다.

앞으로도 열심히 문제를 풀어보고 필요한 자료구조, 알고리즘에 대해 공부하며 기초적인 구현능력도 쑥쑥 키워나가고 싶다.

GitHub: 항해99 코딩테스트 문제풀이 코드
GitHub: 프로그래머스 Level0 문제풀이 코드


💡기억해두자!

JWT(Json Web Token)

Json Web Token의 약자로 전자 서명 된 URL-safe (URL로 이용할 수있는 문자 만 구성된)의 JSON이다.

JWT 인증방식은 인증에 필요한 정보들을 암호화시킨 토큰을 말한다.  알고리즘과 토큰 형식을 담는 Header와 data 값을 담는 Payload, 그리고Verify Signature 의 세 부분으로 구성되어 있다.

세션/쿠키 방식은 별도의 저장소 관리가 필요하지만, JWT는 발급 후 검증만 하면 되기 때문에 추가 저장소가 필요하지 않으며 간편하다는 장점이 있다.  그래서 서버를 확장하거나 유지, 보수하는데 유리하다.

API(Application Programming Interface)

API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체이다.
API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)와 상호작용하여 주문받은 요리(명령에 대한 값)를 전달한다.

API의 역할

1️⃣API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
데이터베이스에는 소중한 정보들이 저장되는데 모든 사람들이 이 데이터베이스에 접근할 수 있도록 하면 안된다.
API는 이를 방지하기 위해 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다.

2️⃣API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
여기서 애플리케이션이란 흔히 알고 있는 스마트폰 어플이나 프로그램을 말한다.
API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.

3️⃣API는 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.
쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있다.

한주의 회고

이번 한주는 정말 바쁘게 보냈던 것 같다.
사실 아침잠이 많은 편이라 매일 새벽까지 공부하고 아침9시부터 공부하려니 정말 힘들었는데, WIL을 작성하며 한주를 되돌아보니 한주를 알차게 보낸 것 같아 뿌듯하다!
공부하면서 중간중간 시간을 만들어 필라테스 수업도 들으러 다니고 있는데, 긴 시간 공부하며 쌓이는 스트레스도 풀고 체력도 키울 수 있어 꾸준히 다닐 생각이다.

다음주에는 코딩테스트 모의고사를 보고, 실제 코딩테스트를 치르게 되는데 정해진 시간내에 문제를 풀어낼 수 있을까? 점수가 형편없는 건 아닐까? 걱정이되지만...
하루하루 꾸준히 공부하면 해낼 수 있을거라 믿는다! 화이팅!!

[TIL] 2022.11.14
[TIL] 2022.11.15
[TIL] 2022.11.16
[TIL] 2022.11.17
[TIL] 2022.11.18
[TIL] 2022.11.19

profile
느리더라도 꾸준하게

0개의 댓글