사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다.
비슷한 차트 검색기
전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요?
www.similarchart.com
https://dodo4723.tistory.com/142
20살까지 중학교 수학도 모르던 예고생의 IT대학 도전기 Start! (과목별 정리)
사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간
similarchart.com
프로그래밍 및 실습 (C)
1학년 2학기 전공기초과목인 프로그래밍 및 실습 2입니다. (2019년 수강)
성적
A+ (4.5)
파이썬은 할만했는데.. C는?
1학년 1학기에 제 인생 첫 프로그래밍을 파이썬으로 배웠습니다. 파이썬을 배우면서 '생각보다 프로그래밍 할만한데?' 라는 생각이 들었던 것 같습니다. 하지만 진짜는 따로 있었네요.
C언어는 파이썬과는 다른 점이 많았습니다. print("Hello World") 한줄만으로 실행이 가능했던 파이썬보다 뭔가 까다로운 느낌을 많이 받았습니다.
실행환경부터 뭔가 답답해..
게다가 C언어 실습 환경도 뭔가 불편한 점이 많았죠. 그 당시에는 이 환경이 뭔지도 모르고 그냥 시키는 대로 따라 했는데, 지금 생각해 보니 리눅스 vi 환경이네요.
파이썬은 파이참이라는 파이썬 전용 IDE에서 실습하여 틀린 부분이 있으면 자동으로 빨간 줄이 그어져 실행하기 편했습니다. 하지만.. 여기는 그런 건 없습니다.
어찌저찌 코드를 다 적어 컴파일을 하려고 하면 한 번에 되는 경우는 거의 없었습니다. error, warning 대여섯 개는 기본입니다.
C도 vscode같이 편리한 개발환경이 있는데 왜 굳이 이렇게 어려운 vi 환경에서 실습하는지 이해하지 못했습니다. 군대를 갔다 오고 3학년이 된 3~4년 후에야 이해가 됐었죠. 리눅스, vi환경을 이렇게 강제로 자주 접한것이 나중에 매우 매우 큰 도움이 될 줄은 당시에는 상상도 못했습니다.
여기저기서 포인터로 겁 많이 줌
가끔 C언어와 관련된 영상/글을 보면 C언어를 배우다가 포인터에서 대부분 포기한다는 말을 많이 들었습니다. 그래서 저도 처음에 겁을 좀 먹었던 것 같습니다.
당시 C언어를 공부한다고 하면 대부분이 선택하는 책이 있었습니다. 아마 컴공생이면 대부분 읽어봤거나, 읽어보지 않았더라도 표지를 보면 대부분 한 번쯤은 봤을 책입니다.
학교 수업만으로는 부족하다고 생각하여 위 책을 구매하여 처음부터 차근차근 자세히 공부해야겠다고 생각했습니다.
앞부분에 기본적인 자료형, 함수, 변수 등은 파이썬과 비슷한 부분이 있어 쉽게 따라갈 수 있었습니다. 그리고 책의 중반부 즈음부터 포인터를 마주하게 됩니다.
그렇게 포인터 부분을 읽어나가는데, 여기저기서 포인터 어렵다고 한 것에 비해 생각보다 어렵지 않은 느낌이었습니다. 그냥 특정 주소를 가리킨다는 본질만 제대로 이해하면 막히는 부분은 없었습니다. 오히려 프로그램은 더 세밀하고 효율적으로 다룰 수 있다는 것에 흥미가 가더군요.
참 다행이라고 생각했습니다. 제가 선택한 전공이, 프로그래밍이, 제 적성과 흥미에 잘 맞았다는 사실이 어찌 보면 행운일지도 모르겠습니다.
위 책을 읽고 먼저 예습 후 수업을 들으니 수업도 따라가기 쉬웠습니다. 그렇게 A+라는 좋은 성적도 받을 수 있었습니다.
결론
가끔 C언어를 공부하지 않은 저를 상상하곤 합니다. 물론 요즘 프로그램을 만드는 경우에 C언어를 사용은 드물다고 알고 있습니다. C++, C# 정도가 게임제작 등에 쓰인다고 알고 있습니다. 요즘은 파이썬, 자바 등을 제일 많이 사용하는 것 같습니다.
하지만 C언어를 공부하지 않았으면 파이썬/자바를 보는 시각도 매우 달랐을 것 같습니다. C언어를 공부했기 때문에 변수, 메모리, 컴퓨터 구조에 대한 이해가 수월했습니다.
실제로, 저는 가비지 컬렉터로 메모리 관리를 자동으로 해준다는 파이썬으로 웹 프로젝트를 진행하였습니다. 하지만, 가끔 원인을 알기 힘든 메모리 누수가 발생하곤 합니다. 이때, C언어에서 메모리 관리를 하던 경험이 도움이 많이 됐습니다.
물론 교수님께서도 수업을 잘 진행해 주신 것도 한몫했습니다.
한줄평 : 개발자가 되려면 '근본' C언어 공부는 필수!
'예고생의 IT대학 도전기' 카테고리의 다른 글
예고생의 IT대학 도전기7 - 자료구조 (우선순위 큐 같은거 꼭 알아야할까?) (0) | 2024.02.17 |
---|---|
예고생의 IT대학 도전기6 - 이산수학 (그래프? 트리? 이게 수학이야?) (0) | 2024.02.17 |
예고생의 IT대학 도전기4 - 오픈소스 기초설계 (화분에 물 자동으로 주는 기계 제작) (0) | 2024.02.17 |
예고생의 IT대학 도전기3 - Python 프로그래밍 및 실습 (A+? 희망이 보인다) (0) | 2024.02.17 |
예고생의 IT대학 도전기2 - 물리및실험 (개발자가 왠 물리? 수학이면 몰라도) (0) | 2024.02.17 |