들어가며 항해99에 승선한 지 벌써 일주일이 지났다. 처음으로 팀을 꾸려 프로젝트도 해보고 코딩테스트를 위해 알고리즘을 공부해보기도 하였다. 일주일만에 많은 사람과 친해졌고, 많은 에러를 만났고, 해결했고, 새로운 걸 공부하면서 머리를 싸매기도하고, 내 공부방식에 대해 고민해보기도 했다. 짧지만 많은 걸 경험했던 지난 일주일. 이번 주, 그리고 앞으로의 WIL은 항해99에서 제시해주는 필수 키워드를 간단하게 정리하고나서, 지난 일주일을 되돌아보는 회고록 위주로 작성하기로 한다. JWT JSON Web Token의 약자로, 유저를 인증하고 식별하기 위한 Toekn기반 인증 방식이다. 자세하게 알고싶다면 해당링크를 방문해보도록 하고 이 포스팅에서는 간단하게 Cookie, Session과의 차이점과 그 장점에..
깃 커밋을 정말 열심히 했는데 잔디가 안심어졌다!!!!!! 이게 무슨 일이야... 내 잔디..ㅠㅠ 깃에서 반영이 느린가 했더니 그건 또 아니었다. 구글링해보니 깃에 설정한 이메일과 로컬의 이메일이 달라서 생기는 문제라고 한다. 캡쳐를 안해놨는데... 찾아보니까 설정한 이메일에 오타가 나있었다. 해당 부분을 git config --global user.email "" 으로 바꿔줬는데 그럼 기존 커밋들은 어떻게 복구하죠? rebase로 기존 커밋들을 돌릴 수 있다. https://wellbell.tistory.com/43 github 잔디밭 안 심어지는 현상 해결 및 이미 커밋한 내용 반영하기 1. github 잔디 안심어지는 현상 해결 흔히 잔디밭이라고 불리는 github contributions(acti..
들어가며 오늘의 강의 내용은 '연결 리스트'였다. 예전에 자료구조 공부한다고 깔짝였던 때에 연결리스트 강의를 들어놓은 적이 있어서 개념은 어렵지 않게 이해했는데 직접 구현하는 부분에서 애를 많이 먹었다. 여러가지 연결리스트 메소드를 직접 구현해보려고 했는데 실패하기도 했고, 몇가지 에러도 마주쳤다. 오늘의 TIL도 어제와 같이 강의 개념과 문제 정리를 하고 추가로 에러코드 트러블 슈팅도 해보자! 배열과 연결리스트 배열 여러 데이터를 저장하는 자료형 중에 가장 빨리 접근할 수 있는 자료구조 처음 생성 시 공간을 미리 할당해야하고, 생성 이후에는 크기 수정이 불가능하다. 처음에 공간을 정해두므로 데이터를 추가/삭제하는 과정이 쉽지 않다. 연결리스트(Linked List) 각 노드가 데이터와 포인터를 가지고 ..
파이썬으로 코딩테스트 대비 알고리즘 공부하던 도중 TypeError: reverseList() missing 1 required positional argument: 'head’ 에러를 만났다. 연결리스트를 공부하던 부분이었는데, 코드가 맞다고 생각하고 있었는데 대체 뭐가 문제인지 전혀 모르겠더라... 에러로그를 보면 인자가 하나 부족하다고 하는데 대체 뭐가 부족한거지?? 구글링을 해봐도 관련 내용을 찾기가 굉장이 어려웠는데 다행히 항해99의 수강생분들 중 능력자이신 분에게 도움을 요청해서 간단하게 해결했고 앞으로의 실수를 방지하기 위해 삽질로그를 작성해보기로 했다. 문제 - missing 1 required positional argument: 에러 에러가 떳던 전체 코드는 다음과 같다 class Li..
들어가며 2주차 알고리즘/코테 주차가 시작되었다. 알고리즘은 처음 공부하는데 아니나 다를까 되게 어렵고 힘들다. 꼭 필요한 과정이라고 생각했기에 정규트랙 대신 심화트랙을 들어온 건데 1일차부터 내가 진짜 할 수 있을까라는 고민이 들기 시작했다. 빨리 잘 하고 싶은 마음이 커서 더 부담감이 크게 다가오는 것 같다. 알고리즘은 차근차근 단계별로 공부해야 한다고 생각했는데 단기간 안에 일정 수준만큼 끌어올려야 한다고 한 문제를 몇시간이고 붙잡고 있어서 12시간도 부족한 기분이어서 공부방식을 효율적으로 바꿔야 앞으로 3주를 버틸 수 있을 것 같아서 매니저님과 면담을 진행했고 나에게 맞는 공부방법을 어느정도 찾았기에 오늘의 TIL은 알고리즘 주차에서 제공해준 강의와 과제를 정리하고, 공부방식을 어떻게 가져갈 지 ..
들어가며 1주차 미니프로젝트 주간이 끝이 났다. 한 주차가 끝난 김에 조금 놀아볼까 했으나 TIL은 꾸준히 작성하자는 다짐을 다시 상기시키며 오늘의 TIL은 트러블 슈팅을 하고, 1주차 회고를 해보고자한다. 트러블 슈팅 문제 mongoDB에서 데이터를 정렬해서 가져오기위해 mongoDB의 sort()함수를 사용하려고 했는데 다음과 같은 에러를 뱉어냈다. 구글링을 해보고 시도한 코드들에서도 같은 에러가 나와서 정렬 방식 자체를 바꾸기로 했다. 시도한 코드 sorted_cards = db.project.find({}).sort({'like': -1}) 에러 코드 TypeError: if no direction is specified, key_or_list must be an instance of list 해..
들어가며 프로젝트는 잘 진행되고 있었는데 파이참에서 지금까지 잘 쓰고 있었던 '저장 시 자동 재실행'기능이 갑자기 작동하지 않았다. 덕분에 거의 4시간동안 코드 한 줄을 작성할 때마다 수동으로 서버를 재실행해주고 있었는데 항해99 슬랙에 질문을 남겼더니 방법을 알려주셔서 겨우 해결했다. 오늘의 TIL은 Flask의 디버그 모드에 대해 트러블 슈팅을 적어보고자 한다! 트러블 슈팅 문제 1. 파이참에서 세이브했을 때 자동으로 서버가 재실행되지 않는 문제 파이참에서 서버를 open한 상태에서 코드를 수정하면 기존에는 자동으로 서버가 재실행이 됐었는데 어느 순간부터 이 기능이 작동하지 않아 코드를 수정할 때마다 수동으로 서버 재실행을 해줘야하는 번거로움이 있었다. 해결 코드를 수정했을 때 자동으로 서버가 재실행..
들어가며 항해99 2일차의 날이 밝았다. 1일차에는 미니프로젝트 기획을 하고, figma로 와이어프레임을 짰는데 팀원 모두 처음하는 팀프로젝트여서 체계를 만드는 데에 어려움이 많았다. 서로 소통하고 맞춰가면서 점점 체계가 잡혀가는 모습을 보며 협업 감각을 익혀나가는 방법을 서서히 배워나가고 있다. 혼자 프로젝트를 할 때에는 모르는 부분을 파워 구글링으로 삽질했는데 팀원과 함께하니 혼자보다 확실히 수월하게 해결하게 된다. 오늘의 TIL은 트러블 슈팅와 깃허브를 이용해 체계를 잡아가는 과정을 적어보고자 한다! 트러블 슈팅 문제 1. Ajax 400 bad request에러 function category(tech_give) { alert(tech_give) $.ajax({ type: "GET", url: "..
들어가며 사전테스트가 끝나고 드디어 항해99에 승선하게 되었다. 학원은 처음이 아니지만 거의 100% 자기주도학습인 부트캠프를 하는건 처음이라 기대 반 설렘 반으로 시작했다. 항해99 시작한 후 들은 특강과 첫 팀프로젝트에 대해 정리하는 시간을 가져보도록 하자. TIL 특강 - 오시영 멘토님 TIL이란? Today I Learned의 줄임말으로 개발공부를 하면서 배운 것들을 그 날 정리하는 것이다. 기술적인 부분 외에도 내가 생각하기에 중요하다고 느끼는 점을 자유롭게 적어내려가는 일종의 '일기'같은 개념. TIL을 작성할 때 중요한 점은 내가 이걸 왜 배우고 있지? 를 생각하면서 작성해야한다. 그저 시키니까, 취업할 때 좋은 점수를 받으니까 쓰는 건 멀리봤을 때 도움이 되지 않는다. TIL 작성 팁 아래..
들어가며 본격적으로 Flask를 배우는 과정이다. Spring boot만 써보다가 python의 웹 프레임워크인 Flask를 배우게 되니 벌써 기대가 된다. 이번 주차는 Flask의 사용법을 익히고 Spring boot와 기본적으로 얼마나 다른 지 느껴보는 시간도 갖게 될 수 있겠다! 여담이지만 IDE를 Eclipse만 쓰다가 Pyharm을 갑자기 쓰려니 적응이 안되고 보기가 힘들다.. 얼추 구조는 IntelliJ랑 비슷하게 생겨서 추후에 IntelliJ에 적응하는 데에도 도움이 될 것 같다. 시작하기 전 기본 세팅 DB 연결 - 패키지 설치 pymongo : mongoDB를 사용할 수 있게 해주는 패키지 dnspython : 서버를 사용할 수 있게 해주는 패키지 flask : 웹 서버 개발을 위한 프레..