Today I Learned
- 팀원분이 알려주신 Command+shift+p : python 인터프리터 선택 단축키
num_list = list(db.15+project.find({},{'_id':False}))
num = 1
if num_list:
num = num_list[-1]['num']+1
else:
num = 1
=> db에서 project에서 id필드를 제외한 모든 필드를 반환함. list함수를 사용하여 반환된 결과를 리스트로 변환하고 num_list변수에 저장해줌. num 변수를 1로 초기화 해줌
if문에서 num_list에 값이 있을 경우 리스트이 마지막 항목의 필드에서 num 값을 가져와서 1을 더한 값을 num변수에 저장하고 else인 경우 num 변수를 1로 초기화 해줬다.
- 오늘 우여곡절 끝에 겨우겨우 프로젝트 완성을 했다. 내일 프로젝트에 대한 TIL을 상세히 적을 것이다. 새로운 분들과 협업하니 깨달은 점은 각각 잘하는 분야가 정말 다르고 협업의 분위기를 잘 이끌어주시는 분이 있는 것이 있고 없고 차이가 정말 크다. 안될 것도 되게 할 수 있는 것 같다. 개발에서 커뮤니케이션의 중요성을 정말정말 많이 느꼈다. 내일배움캠프에는 비전공자인 분들이 많다. 하지만 다들 열정이 엄청나시고 밤새 게더타운에 계시는 분들도 정말 많다. 다들 건강을 챙기면서 하셨으면 좋겠다. 또 다들 여러가지 일을 하시다 온 분들이 많은데 협업할 때 각자의 개성이 묻어나오는 것이 새롭고 오히려 좋게 느껴졌다.
개인공부 한 것 : 파이썬 공부
- 파이썬은 쉘 스크립팅 언어로 개발됨 (* 쉘 스크립팅 언어란? 쉘 스크립팅 언어는 리눅스와 유닉스 운영체제에서 사용되는 프로그래밍 언어이다. 스크립트를 작성하여 명령어를 자동화하고 시스템 관리를 용이하게 할 수 있다.)
=> 분산 운영 체제(아메바) 시스템 관리를 해
- 명령형, 절차적, 객체지향, 함수형 프로그래밍 지원
- 다목적 활용 가능 (응용 프로그램, 웹, 백엔드 개발, 교육 등등..)
- 현재(2023기준) 파이썬 3.n 환경임 (소수점 앞이 변경되면 메이저 업데이트/ 소수점 뒤 : 마이너 업데이트)
=> 2.0버전과는 호환되지 않기 때문에 2.0에서 만든 프로그램은 3.0에서 작동하지 않음 주의
- 파이썬은 오픈소스 형식이다. 그렇기 때문에 대형 개발자 커뮤니티가 형성되고 파이썬이란 언어를 개선하기 위해 다양한 개발자들의 의견을 수용하고 토론해서 발전시킬 수 있는 언어이다. 이와 관련해서 파이썬 관련 개선을 위한 제안이 있는데 PEP라고 불리며 PEP8(스타일 가이드)이 대표적이다.
- 인간적,직관적인 문법을 가지고 있어서 프로그래밍언어를 처음 접했을 때 개념을 익히기 쉬운편이다.
- 플랫폼에 독립적 : 여러 운영체제(리눅스,윈도우, 맥OS)에서 별도 컴파일 없이 실행 가능
- 변수 자료형 지정 x
- Cpython, pypy, Cython 등 다양한 인터프리터 환경 사용 가능 (소스 대 소스 컴파일러; 타 언어로 작성한 컴파일러)
* 파이썬 프로그램 실행과정
파이썬 애플리케이션은 소스 코드 형태로 배포됨 Cpython이 컴파일 후 바이트 코드 .pyc파일 생성
=> 파이썬 가상머신은 바이트코드를 한 라인씩 실행 => 변경없이 재실행 시 바이트코드로 빠르게 실행
- 주피터 노트북 : 오픈소스 기반의 웹 플랫폼
- 파이썬을 비롯한 40여개의 프로그래밍 언어 지원
- 전통적인 소스코드-컴파일-실행 방식에서 벗어나 웹 기반 대화형 개발 및 실행 환경
- 문서화하여 다른사람과 공유하기 편리
- 마크다운(Markdown)을 이용하여 코드 관련 타이틀, 설명 등 작성 가능
- 구글 Colab (클라우드 기반 주피터 노트북 개발환경 )
- 주피터 노트북 + 구글 드라이브 = 구글 Colab
- 데이터 분석 및 딥러닝 연산 등 고성능 컴퓨팅 리소스 활용 가능
- 공부하면서 pythonic하다는 말이 인상 깊었다.. 다른 언어보다 독립적이고 공개적이기 때문에 대중들에게 더 친숙할 수 있는 프로그래밍 언어로 발전했다고 생각한다.
그리고 학교 강의를 들으면서 프로그래밍 능력의 가치란 무엇일까라는 질문에
단순히 프로그램을 만드는 것이 아닌 컴퓨터를 이용해서 문제를 인식하고 논리,체계적으로 해결하는 과정이며 프로그래밍은 사고력의 관점을 지향한다는 점.
[ 문제 발견 -> 문제 해결 방법 모색 -> 문제 해결 ]
이러한 전체 과정이 프로그래밍이라고 했다.
사고하지 않은 프로그래밍이 있을 수 없고 절차적으로 생각하지 않으면 문제를 해결할 수 없다.
-> 논리적으로 생각하고 절차적으로 사고한 것을 기반으로 문제해결을 해야한다.
내가 프로그래밍 능력을 키우려면,.,,
- 똑같은 문제를 풀더라도 과학적으로 사고해서 컴퓨터를 활용해 푸는 것이 훨씬 수월하다..
- 새로운 시야로 보고 사고하도록 노력해야한다~
코딩을 통해서 원리를 깨달을 수 있고 세상을 보는 시야가 새로워지는게 너무 매력적인 것 같다.. 앞으론 프로그래밍적 사고능력을 늘리고 싶다. 절차적 사고!!
'내일배움캠프 > 내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 AI 5기 TIL 6일차 (7) | 2023.03.21 |
---|---|
내일배움캠프 AI 5기 TIL 5일차 (4) | 2023.03.17 |
내일배움캠프 AI 5기 TIL 3일차 (1) | 2023.03.15 |
내일배움캠프 AI 5기 TIL 2일차 (2) | 2023.03.14 |
내일배움캠프 AI 5기 TIL 1일차 (1) | 2023.03.14 |