목록WHAT I LEARN (83)
Nonamed Develog
새로 알게 된 점은 무엇인가?절차 지향 프로그래밍 vs 객체 지향 프로그래밍- 절차 지향 프로그래밍프로그램을 여러 순서대로 진행되는 절차(함수나 명령)들로 구성된다.기능 중심이고 순서가 존재하기 때문에 빠른 속도를 가지고 있다.하지만 프로그램이 커지고 데이터가 많아질수록 너무 복잡해질 수 있다.- 객체 지향 프로그래밍절차 지향 프로그래밍으로는 생산성이 낮아지므로 데이터 중심으로 프로그래밍 개편하나의 프로그램을 여러 개의 독립된 객체들과 상호작용현실 세계를 프로그램 설계에 반영(추상화)설계 시 정밀하게 다양한 객체 간 상호 작용 구조를 만들어야 하기 때문에 시간이 필요하다.실행속도가 절차 지향 보다 상대적으로 느리긴 하지만 처리구조가 비슷해 빠른 편이라고 할 수 있다.클래스와 객체속성(data, 변수)과 ..
FACTS(사실, 객관): 이번 일주일 동안 있었던 일, 내가 한 일코드카타, 알고리즘 강의, 파이썬 세션의 반복. 뇌의 한계를 재대로 느끼는 중...FEELING(느낌, 주관): 나의 감정, 반응, 느낌파이썬을 공부하면서 코드카타 문제도 풀 수 있게 되고 과제도 할 수 있게되니 나름 할만하다고 생각했었다. 하지만 내가 아는 것은 빙산의 일각이었고, 아직 공부해야할게 산더미였다. 자료 구조와 알고리즘이 그 정점이었다. 강의 난이도가 갑자기 올라서 따라갈 수 없었고, 스택, 큐 등을 구현하는 것을 강조했는데 할 수가 없었다.FINDING(배운 것): 그 상황으로부터 내가 배운 것, 얻은 것스쿼드 세션을 통해서 파이썬의 애매하고 알고 있는 부분이나 몰랐던 부분을 공부할 수 있었다. 복습하고 블로그에 정리하니..
새로 알게 된 점은 무엇인가?피보나치 수 구하기# 1. 코드 작성 전 슈도 코드로 구상def fibo(n): # 2. 골격 코드 작성 if n == 1: # 4. 종료 조건 작성 return 1 # 5. 종료 조건은 명확하지 않은 경우가 있으므로 elif n == 2: # 재귀 논리를 생각하는 연습하기 return 1 else: return fibo(n-1) + fibo(n-2) # 3. 구상한 재귀 논리 작성 n = int(input())print(fibo(n)) 멤버십 연산자(in, not in): iterable(반복가능한) 시퀀스에서 True/False 판별value(확인할 값) in sequence(확인할 시퀀스): 특정 ..
오늘 세션에서도 파이썬 문법을 다뤘는데 정확히 몰랐던 부분에 대해서 정리하고자 한다. 새로 알게 된 점은 무엇인가?모듈과 패키지- 모듈: 프로그램에서 특정 기능을 하는 파이썬 파일(.py)import moduleimport my_math # my_math 모듈을 가지고 와서my_math.add # 모듈.메소드 이용from my_math import add # 모듈과 메소드 하나를 가져옴(가져온 메소드만 이용가능)from my_math import * # 모듈과 메소드 전체를 가져옴- 패키지: 모듈을 모아두고 관리하는 상위 폴더 또는 디렉토리from package import modulefrom special.my_math import addfrom special.my_math import *from..
오늘은 어제에 이어서 스쿼드 세션에서 다룬 파이썬 문법을 정리하고자 한다. 잘 몰라서 외면했었던 내용이라 잘 정리하고 넘어가기 좋은 기회라 생각했다.새로 알게 된 점은 무엇인가?함수- 전역변수(Global variable): Global scope에 위치한 변수는 바뀌지 않는다면 따로 지정할 필요가 없지만, 바뀌게 된다면 local scope에서도 명확하게 지정해야 한다.cf) nonlocal: 지역변수가 아님을 선언. 함수 바로 한 단계 바깥쪽에 위치한 변수를 명시할 수 있다.a = 0b = 1def func01(): global a # a += 10처럼 변경되므로 global a를 명시해 줌 a += 10 def func01(): print(a)''' 하지만 현직에서 global은 사용하..
어떤 문제가 있었나?요즘 스쿼드 세션에서 파이썬 문법을 배우고 있다. 이미 배웠다고 대충 들을 내용이 아니었다. 그동안 내 파이썬 학습은 빈틈 투성이였다. 세션 중 나오는 퀴즈의 절반은 틀렸거나 답을 내놓지 못하였다. 이번 세션에서 많은 빈틈을 발견했고 복습을 통해서 채워야겠다고 생각했다. 무엇을 시도했나?세션 내용을 필기한 후에 복습을 했다. 대부분 '알고 있다'고 생각한 문법이지만, 역시나 '재대로' 알지 못한다면 모르는 것이었다. 어떻게 해결됐는가?조금이나마 재대로 이해하기 위해 복습한 내용을 TIL에 기록하고 궁금한 부분은 튜터님께 질문하여 채울 예정이다.새로 알게 된 점은 무엇인가?이런게 있구나~ 하고 넘어간 다음 한번도 쓰지 않은 문법들을 정리해보자 삼항연산자: 꼭 필요한 연산자는 아니지만 ..
어떤 문제가 있었나?알고리즘 문제를 풀다 보면 딜레마가 생긴다. 너무 어려운 문제는 정답코드를 확인하곤 하는데, 강의에서 언급이 없거나 가볍게 넘어간 문법을 사용한 풀이라 코드를 읽는데 어려움이 있었다. 또는 이미 존재하는 라이브러리를 사용하여 쉽게 해결하는 코드도 있었다.정답을 맞추는 것도 중요하지만 풀이하는 과정이 중요하다고 생각하기에 최대한 배운 것을 위주로 문제 풀이를 했지만, 많은 사람들이 강의에서 언급하지 않거나 가볍게 언급한 문법을 사용한 풀이를 보면 내 풀이를 시간 복잡도를 고려하지 않은 풀이가 되었다. 그렇다면 새로운 라이브러리, 문법을 공부하여 적극 사용한다면 공부가 될까? 아직 답을 내리진 못했었다. 무엇을 시도했나?오늘 알고리즘 특강, 강의 그리고 스쿼드 모두 시공간 복잡도에 대해 ..
오늘 TIL은 서식을 사용하지 않고 컴퓨팅 사고(Computational Thinking)와 슈도 코드(pseudo code)에 대해서 정리하려한다. 알고리즘을 공부하면서 이 두가지를 정리하고 넘어가야 앞으로 도움이 될거라 생각이 들었다. 아래 링크는 구글링을 통해 찾은 컴퓨팅 사고에 대한 블로그 포스트다. 내용이 좋아 아티클 스터디 재료로 삼았다.https://velog.io/@teo/computational-thinking 컴퓨팅 사고(Computational Thinking)도대체 컴퓨팅사고라는게 무엇일까? 파이썬을 공부하면서 느낀점은 '언어'를 배우는 것과 비슷하다고 생각했다. 영어 말하기를 잘하기 위해선 물론 단어와 문법을 알면 좋지만. 영어를 사용하는 환경에 자주 노출되어 자연스럽게 언어로 인..