0주차 미니 프로젝트 종료

정글일지 1

1.개발 진행 및 완료상황

  • 0주차 미니프로젝트 완료(소모임 생성 및 참여 웹페이지)
  • 1주차 파이썬 기초 알고리즘 공부 중
  • 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용

  • 소모임 등록 후 중복참여 방지 기능 : 모임 등록시 생성자가 포함된 참여 user ID가 담긴 table이 생성되도록 하였다. 문자열’g’와 1부터 증가하는 숫자(num += 1)를 결합하여 제목으로 부여하여 제목을 고유ID로 쓸 수 있도록 하였다. 모임 생성시 모임 정보에 이 제목도 저장했고 유저 참여시 이 table에 본인 ID가 있는지 조회하도록 만들었다.
  • Jinja2 pagination과 time을 이용한 고유 ID 부여 및 값 지정 : 원래 각 참여 user ID table은 time*100000을 이용한 고유 ID를 제목으로 가지도록 계획했다. 하지만 이 time값을 지정하여 모임 정보에 저장하여 DB에 POST할려 했으나 값을 지정하는 부분에서 문제를 겪었다. 기억으론 time값이 변수라서 그랬었나.. 결국 우린 모임 listpage에 구현해놨던 pagination을 포기했다. 사실 애초에 num += 1과 문자열을 결합하는 방식을 진행했다면 pagination을 포기하지 않았어도 됐을듯 하다. 후에 기회가 된다면 적용해 봐야겠다.
  • 배포와 로그인과 쿠키 : 실패했다. 로그인 시 만들어진 쿠키가 DB로 넘어가지 않는다. 결국 우린 기능 시연에서 local상태로 했다. 코치님은 세션은 DB에 뒀다?라는 말을 했던 것같은데.. 사실 아직 Login의 개념과 원리 이해가 부족해서 못 알아들었다. 사실 cookie가 넘어가지 않는 것도 팀원이 알아냈다. 찾아봤지만 Chrome 브라우저의 보안 문제와 관련된 것이다, 버그다 등 다양한 답변을 봤지만 결국 해결하지 못했다. 들었던 피드백을 생각하면 세션과 관련하여 잘못한 일이 있는 것 같은데.. 로그인 기능을 공부한 후에 꼭 다시 봐야겠다.
  • 파이썬 프로그램 작동 : 파이썬으로 구성한 프로그램을 작동시키는 법을 제대로 배웠다. 오른쪽 위 실행버튼을 누른 후 terminal에 원하는 변수(input, 나는 sys.stdin.readline() 으로 했지만)를 입력하고 결과를 받아내야 한다. 약 3시간 가까이 작동버튼을 두번 눌러 변수를 입력하지 않아 발생하는 오류를 코드가 잘못됐다고 생각하여 헤맸다. 스스로의 수준이 참 서글프지만 앞으로 자주 겪을 시행착오라 생각하고 마음을 추스렸다.
  • 자료구조 : 사실 list, dictionary 등만 알고 있었는데 자료구조가 훨씬 다양하다. 또 iteration에 대해 아직 이해가 되지 않았다. 더 고생하기 전에 공부해야겠다.
  • 정수형 : str,int,float을 알게 됐다. 문자형, 정수형, 실수형을 항상 생각해야겠다. string이 뭔지 드디어 알게 됐다.
  • 지역변수와 전역변수 : 이 개념을 몰라 매번 변수 문자를 바꾸느라 혼자 고생했다. 조건문, 반복문 내의 지역변수는 구역을 나오면 무의미하다.
  • 함수 설정 : 너무 목메고 있다. 아직 반복문, 조건문을 이용하면 충분히 풀 수 있다. 온갖 함수 다 만들고 틀릴 시간에 답을 보고 이해하자. 대신 창을 끄고 안보고 재현할 수 있도록 공부하자.
  • 새로 배운 내용

  • HTML, Python.Flsak, Jinja2를 이용한 pagination, 로그인 기능, JWT, 쿠키, 세션, Bulma, JavaScript, CSS, MongoDB, Atlas
  • VSCode에서 git 사용법 및 git repository, branch 원리
  • Python : 반복문(for, while), 조건문, 카운터용 변수
  • Python : 지역변수와 전역변수, range(a, b, step), 형변환
  • Python : input()과 sys.stdin.readline(), print( ,end=” “)
  • Python : 자료구조(Iterator,iterable), 반복문에서 break와 continue
  • Python : random_randint(a,b), 변수의 의미와 식별(고유)번호
  • 참고할 만한 레퍼런스들

  • 자료구조와 함께 배우는 알고리즘 입문 파이썬편(BohYoh Shibata,강민,이지스퍼블리싱)
  • 특이사항

  • 개발일지는 SW사관학교 Jungle 내에선 매일 쓰자.(했던 고민이 기억안남)
  • 문제가 안풀리면 너무 오래 끌어안지 말고 답을 보던가 책을 읽자.
  • 알고리즘은 답이 여러개다. 코딩이 자세하다고 무조건 정답은 아닌듯 하다.
  • 초심이 흔들리면 처음 쓴 essay를 읽자.
  • 무작정 부딪히기보단 개념서를 읽는 것이 좋았다.
  • 메일 정리, repository정리, github 사용, VScode terminal 사용은 버릇을 들이자.
  • 기억은 휘발되니 최대한 자주 기록하자.
  • 프로젝트 진행시 주석을 자주 사용하자. 나중에 복습할 때 유용할듯 하다.
  • 0주차 프로젝트에서 특정 기준으로 정렬하는 기능을 구현하지 못했다. 좋아요, 참여인원, 주제 등으로 분류하거나 정렬하고 싶었다. 공부해 놓자.
  • 기능이 최우선일순 있지만 시각적으로 웹페이지를 잘 꾸미면 보기 좋다. 색깔, 배치 등도 잘 고민해보자.
  • 회원가입 창에서 ‘알람창’이 뜨는 것을 해당 칸 밑에 메시지가 뜨게 하니 깔끔해보였다. 예를 들어, 이미 있는 아이디입니다. 를 아이디 입력칸 밑에 빨간글씨로 뜨게 하는 것. 사소한 detail이 User입장에서 꽤 크게 느껴진다.
  • 웹페이지에서 뒤로가기 버튼 생각하자.
  • 회고
  • Python Algorithm 공부

Python의 작동 방식에 대해 여전히 잘 모르고 잘못 이해한 부분도 많은듯 하다. 초반 기초문제는 입학시험하며 체득했던 방식으로 풀 수 있었다. 하지만 반복문, 조건문, list를 섬세하게 다루는 문제에서 어려움을 겪었다. 반복문 내 조건문 혹은 그 반대에서 어려움을 겪고 있고 그 내에 또 다른 문장을 넣는데에 어려움을 겪고있다. 반복하고 연습하는 노력만이 살 길이다. 맞추고 나서 다른사람의 답변을 확인하고 비교하는 습관을 꼭 들여야겠다. 코치님이 기초 문제는 이론 공부보다 바로 문제를 풀어보라고 하셨는데 사실 나에게도 해당되는지 모르겠다. 위에서 말했듯 너무나 기초적인 것조차 모르고 있기에 시간낭비가 너무 심각하다. 너무 오래끌지 말고 정답 보는것, 관련 단원 책 읽는 것을 명심해야겠다. 사실 수능 공부때는 수학을 꽤 했으니까 이러한 고민이 유의미할지 몰라도 지금 이곳에서 나는 상황이 다르다. 우직함이 무식함이 되지 않도록, 영리하고 성실하게 공부하자.

  1. 0주차 미니 프로젝트

아는게 없어 고생했다. 끊임없이 공부해야한다. 바쁜 프로젝트동안 파일을 깔끔하게 정리할 순 없겠지만 주석은 열심히 달아서 매번 해당 부분을 찾는데 고생하지 말자. 나중 복습과 리뷰를 위해서라도 습관화 해야한다. 생각보다 기능 구현에 오래 걸렸다. CSS, 배포 등도 어렵고 오래걸렸다. 아이디어를 끊임없이 생각하되 우선순위를 꼭 정해야 한다. 체계적으로 일하는 습관을 들여야 한다.

  1. 습관들이기

아직 초반이라 습관이 없는게 그나마 다행이라 생각하자. Github은 괜히 모두가 쓰는게 아닐거다. 사용법을 체득하자. 파일 정리도 잘해 놓자. 내 기억에 의존하지 말고 언제 봐도 찾을 수 있도록 해놓자. 개발일지를 쓰는데도 기억이 많이 흐려져 고생했다. 특히 내가 아는게 없는 상태에서 듣고 생각한게 많으니 더욱 그런듯 하다. 아무리 적더라도 매일 개발일지를 적는 습관을 들여야겠다. 양이 적으면 매일 쓰고 매주 종합하자. 그리고 제발 아는 것도 없으면 고민 그만하고 빨리 정답보자.

  1. TO-DO-LIST

  2. Python 알고리즘 공부하기
  3. CSAPSP(Computer Systems A programmer’s perspective) 읽기
  4. 백준 문제풀기
  5. 0주차 미니프로젝트 코드 복습하기