목록WHAT I LEARN/TIL (78)
Nonamed Develog
어떤 문제가 있었나?요즘 스쿼드 세션에서 파이썬 문법을 배우고 있다. 이미 배웠다고 대충 들을 내용이 아니었다. 그동안 내 파이썬 학습은 빈틈 투성이였다. 세션 중 나오는 퀴즈의 절반은 틀렸거나 답을 내놓지 못하였다. 이번 세션에서 많은 빈틈을 발견했고 복습을 통해서 채워야겠다고 생각했다. 무엇을 시도했나?세션 내용을 필기한 후에 복습을 했다. 대부분 '알고 있다'고 생각한 문법이지만, 역시나 '재대로' 알지 못한다면 모르는 것이었다. 어떻게 해결됐는가?조금이나마 재대로 이해하기 위해 복습한 내용을 TIL에 기록하고 궁금한 부분은 튜터님께 질문하여 채울 예정이다.새로 알게 된 점은 무엇인가?이런게 있구나~ 하고 넘어간 다음 한번도 쓰지 않은 문법들을 정리해보자 삼항연산자: 꼭 필요한 연산자는 아니지만 ..
어떤 문제가 있었나?알고리즘 문제를 풀다 보면 딜레마가 생긴다. 너무 어려운 문제는 정답코드를 확인하곤 하는데, 강의에서 언급이 없거나 가볍게 넘어간 문법을 사용한 풀이라 코드를 읽는데 어려움이 있었다. 또는 이미 존재하는 라이브러리를 사용하여 쉽게 해결하는 코드도 있었다.정답을 맞추는 것도 중요하지만 풀이하는 과정이 중요하다고 생각하기에 최대한 배운 것을 위주로 문제 풀이를 했지만, 많은 사람들이 강의에서 언급하지 않거나 가볍게 언급한 문법을 사용한 풀이를 보면 내 풀이를 시간 복잡도를 고려하지 않은 풀이가 되었다. 그렇다면 새로운 라이브러리, 문법을 공부하여 적극 사용한다면 공부가 될까? 아직 답을 내리진 못했었다. 무엇을 시도했나?오늘 알고리즘 특강, 강의 그리고 스쿼드 모두 시공간 복잡도에 대해 ..
오늘 TIL은 서식을 사용하지 않고 컴퓨팅 사고(Computational Thinking)와 슈도 코드(pseudo code)에 대해서 정리하려한다. 알고리즘을 공부하면서 이 두가지를 정리하고 넘어가야 앞으로 도움이 될거라 생각이 들었다. 아래 링크는 구글링을 통해 찾은 컴퓨팅 사고에 대한 블로그 포스트다. 내용이 좋아 아티클 스터디 재료로 삼았다.https://velog.io/@teo/computational-thinking 컴퓨팅 사고(Computational Thinking)도대체 컴퓨팅사고라는게 무엇일까? 파이썬을 공부하면서 느낀점은 '언어'를 배우는 것과 비슷하다고 생각했다. 영어 말하기를 잘하기 위해선 물론 단어와 문법을 알면 좋지만. 영어를 사용하는 환경에 자주 노출되어 자연스럽게 언어로 인..
어떤 문제가 있었나?오늘은 그동안 과제로 인해 밀린 코드카타를 풀어봤다. 최대공약수와 최소공배수, 3진법 문제가 특히 어려웠는데, 기초적인 수학 공부가 필요하다고 느꼈다. 물론 이론은 다시 보니 어렵지 않게 이해했지만 코드로 바꾸는 것은 쉽지 않았다. 컴퓨터적 사고를 잘할 수 있게 훈련을 해야겠다.무엇을 시도했나?튜터 님의 조언이 생각나 무작정 종이를 가져와 문제를 풀어봤다. 특히 3진법 문제는 실제로 적어보니 머리속으로 정리할 때보다 어떻게 코드를 작성해야 하는지 아이디어가 떠올랐다. 예를 들어 10진법을 3진법으로 바꾸려면 3으로 계속 나눠서 더 이상 나눠지지 않을 때 몫과 나머지를 나열할 수 있다. 하지만 한번 더 나눠서 몫을 0으로 만들면 나머지로만 나열하여 3진법 수를 알아낼 수 있었다. 즉, ..
어떤 문제가 있었나?오늘은 팀 과제를 마무리하고 발표하는 날이었다. 우리 팀을 포함해서 총 6팀이 발표하는데 피드백에서 많이 언급됐던 것 중 하나가 DB파일은 github에 업로드하지 않는다는 것이다. 이 피드백은 이미 지난 프로젝트에서도 언급되었지만 이번 팀 프로젝트를 진행할 때 생각하지 못했다. 또한 과제에 대한 나의 이해도가 얼만큼인지 가늠할 수 없어 발표 전 코드를 복습해 봤다. 코드를 작성할 때 인스턴스에 대한 궁금한 부분이 있었던 걸 협업이라는 핑계로 외면했지만 더 이상 외면할 수 없었다.무엇을 시도했나?.gitignore를 활용하지는 않았지만 지난 Git 2차 특강에서 배운 브랜치 생성 후 협업하는 방법을 이용하여 프로젝트를 진행했다. 기능 브랜치로 push 후 merge를 하지 않거나 충..
어떤 문제가 있었나?협업을 하다보니 작성 코드의 논리가 어긋나버렸다. 코드 작동은 잘 되는데 코드 리뷰를 하자면 비활성화 되어있는 객체가 있거나 중복으로 작성된 코드도 있었다. 예를 들어 flask route가 1개였는데 2개가 되어서 한 동작으로 진행될 코드가 두 동작으로 나뉘어 있다거나, DB에 저장하는 코드가 2가지였다. 무엇을 시도했나?조원 한 분이 의문을 제기했고 다같이 코드를 리뷰하면서 어디서부터 꼬인건지 찾기 시작했다. 아직 조원 모두 flask에 대한 이해도가 부족하여 조심스럽게 의견을 나눴고, "코드가 작동하는데 수정하지말고 유지하자", "그래도 수정해야할 건 하자"라는 의견들이 나왔다. 내 의견은 전자였는데 잘못 건드렸다가 코드가 망가질 수도 있다는 두려움이 있었기 때문이다. 결론적으..
어떤 문제가 있었나?class를 활용하여 회원가입과 포스트 작성을 구현하는 팀 과제에서 내가 맡은 부분은 입력받은 비밀번호를 파이썬 라이브러리 hashlib을 사용하여 암호화한 후 비밀번호가 암호화되었다고 로그를 남기는 것이었다. 비밀번호를 암호화하는 작업은 어렵지 않았다. 문제는 비밀번호가 암호화됐다는 알림을 파이썬 라이브러리 logging을 이용하여 출력하는 부분에서 생겼다. Member class와 Post class input 입력 사이에 로그 메시지 출력을 원했으나 두 개의 input 사이에 중첩되는 현상이 생겼다.이름을 입력하세요: nameID를 입력하세요: id비밀번호를 입력하세요: 123╒════════╤══════╕07/05/2024 06:15:44 PM :INFO: The passwor..
어떤 문제가 있었나?팀 과제 를 진행 중 클래스에 대한 이해도가 부족하여 문제를 이해할 수 없었다. 또한 PyCharm과 git을 함께 사용하는 방법은 배우지 못해서 협업하는데 어려움이 있었다.무엇을 시도했나?복습으로 클래스 관련 파이썬 기초/심화 강의를 수강하고, 해당 강의의 코드를 실행해보며 이해하려고 노력했다. 하지만 문제를 푸는데 어려움이 있어서 추가적으로 구글링을 시작했다. 한 파이썬 강의 포스트를 연재하는 한 블로그를 발견했다. 완전히 이해는 안되지만 그 블로그를 참조하여 문제를 따라 코드를 작성해봤다.어떻게 해결됐는가?코드를 작성하니 50% 정도는 이해한 느낌이었다. (문제를 어떻게 풀어야하는지 이해한 정도...) 완벽히 이해하기 위해서 예제도 풀어보고 클래스에 대한 내용은 필사를 하며 머..