[기록]
정말 정신 없는 한 주가 지나갔다. 어찌 프로젝트를 진행할 때보다 시간이 부족한 느낌이다. 실제로 무언가를 만들고 있지는 않지만 (아직 개인 프로젝트 시작도 안 함,,ㅎ), 시간에 쫓기는 기분이 든다. 여태껏 공부해오지 않은 내용들을 압축적인 시간 내에 전부 받아들이려 하다 보니 머리가 지끈거리기도 하다. 그래도 가장 다행스러운 점은 아직 즐겁다는 것이다. 공부를 너무 오래 쉬어서 그런지, 무언가에 열정을 쏟는다는 것이 어떤 느낌이었는지 이제야 기억이 나는 듯하다.
캠프를 통해 공부를 하다보니 이런저런 동기부여가 계속해서 업데이트 된다. 주변의 잘 하는 사람들, 열정적인 사람들, 그리고 조언과 훈수들까지도, 더 잘 하고 싶다는 열망이 식지 않도록 옆에서 계속 부채질 해준다. 이런 성장하기 좋은 환경에서 실제로도 나의 성장을 내가 체감할 수 있다는 점이 의지를 더욱 불타게 만들어주는 것 같다.
아직 갈 길이 많이 멀다는 것을 알고 있다. 이제서야 한 분야의 문턱에 와닿은 내가 과연 전문가가 될 수 있을까, 앞으로의 배움이 여전히 즐거울까, 뒤쳐지지 않을 수 있을까 두렵기도 하지만, 나는 이제 기껏해야 캠프의 초입에 와 있다. 성장할 수 있는 시간이 꽤나 남아 있으니, 아직은 신나서 날뛰는 초짜 모드를 유지하며 공부에 몰입하는 것이 좋을 것 같다!
[공부 돌아보기]
이번 주 학습 통해 얻은 것이 두 가지 정도 있다.
하나는 언어 체계에 대한 개념을 더욱 명확하게 파악할 수 있었다는 점이고, 다른 하나는 '그냥 원하는 결과물이 출력되기만 하는 코드'가 아닌 체계성과 효율성, 안전성 등을 신경 쓸 단계에 다다랐다는 점이다.
프로그래밍 언어에 대한 이해
일반적인 사람들의 언어와 프로그래밍 언어의 문법에서 개인적으로 느낀 큰 차이점이 하나 있다.
사람의 언어는 관습적으로 쓰이는 것들이 많고, 결국 인간의 생활에 의해 탄생한 결과물이기 때문에 우연성과 예외가 존재하기 마련이다. 그 결과 사람들이 왜 이런 단어를, 왜 이런 체계로 사용할까?에 대한 답을 명확하게 내리지 못하는 경우가 많다. 따라서 그냥 이해가 가지 않는 부분들은 외우면 된다.
프로그래밍 언어는 일반적인 언어와 유사한 점이 많지만, 우연성에 기인하지 않는다. 인간만을 위한 언어가 아니고, 애초에 체계적으로 설계되어 있으며, 문법과 각각의 요소들의 쓰임은 이유를 가진다. 따라서, 상황과 목적에 맞게 키워드들을 선택하는 능력은 해당 언어에 대한 이해에 비례할 수밖에 없다.
3주차에서 4주차 강의를 들으며 이 부분을 크게 느꼈다.
'A라는 문법적 요소는 이런식으로 쓰입니다.' 라는 설명을 들었을 때, '그렇군요.' 하고 넘어가서는 혼자서 코드를 짤 때 A를 제대로 활용할 수 없다. A가 가진 특징은 무엇인지, 어떤 분류에 속해 있으며 그 상위 분류의 특징은 무엇인지, 예제에서는 어떤 이유로 그렇게 쓰였는지까지 이해를 했을 때 A를 '활용할 수 있다'고 표현할 수 있는 것 같다.
이러한 점 때문에 강의를 듣는 데 시간을 많이 썼다. 캠프에서는 강의에 의존하지 않고 직접 부딪쳐 볼 것을 권했지만, 나에게 필요한 것은 기본적인 개념들을 온전히 이해하는 것이라고 판단했다. 사실상 데이터 타입에 대한 이해부터가 예전부터 알고 있다고 생각했지만, 부족한 부분이 많았다. 실제로 보다 깊은 이해를 한 후에 개념을 적용시키거나 코드를 읽을 때 개념 활용의 의도가 더욱 명확해졌다.
코드의 체계성, 효율성, 안전성
이번 주차를 통해 느낀 또다른 점은 이제는 어떻게든 굴러가게는 만들 수 있다는 점이다. 그 후에는 "이게 왜 되지...?"라는 말이 따라 붙을지라도.
그런데 이걸 좀 더 가혹한 시각에서 바라보면, 여태껏 "일단은 굴러가기만 하게" 만들어 왔다는 말이 된다. 클래스와 객체, 인터페이스, 네임스페이스 등 코드를 보다 체계적으로 구성할 수 있는 개념들을 최근에야 습득하긴 했지만, 보다 더 기초적인 개념들에서부터 효율성을 따질 수는 있었을 텐데... 라는 생각이 계속 들긴 한다. 이걸 성장이라 해야 하나... 하루 이틀 전에 쓴 코드들을 보면 "왜 이따구로 썼지...?" 싶은 부분이 많다.
아무튼 이제는 코드를 좀 더 신경써서 짤 단계가 온 것 같다. 시작부터 잘 쓰는 것은 어려울 수 있으니 시간날 때마다 꼭 리팩토링 해보기로. 구조 자체도 더 깔끔하게 쓸 필요가 있지만, 효율적으로 굴러갈 수 있도록 하는 개념들로 대체해보는 노력이 필요한 것 같다. 안전성은 애초에 신경도 안 썼던 부분이라, 체계성이 어느 정도 잡힌 뒤에는 접근 범위를 제한하는 여러 개념들을 활용해서 외부 접근이 필요한 요소들만 노출 가능하도록 만들어보아야겠다.
팀 프로젝트 전에 과제들을 다시 써볼 수 있는 시간을 꼭 가져야겠다.
[앞으로의 목표]
잘하는 사람이 되기 :
무작정 코드를 짜기보다는 아까 말한 것과 같이 더 좋은 코드를 만들 수 있는 사람이 되도록 노력할 것.
지치지 않기 :
지금까지 계속 쫓기다 보니 쉬어줘야 할 때 제대로 쉬지 않은 느낌이라.. 앞으로 일주일 중 하루는 꼭 놀아주기로,, 그리고 동기부여가 될 수 있는 단기적이고 명확한 목표 계속해서 세우기
'👾 내일배움캠프 > 🎮 TIL & WIL' 카테고리의 다른 글
내일배움캠프 10일차 TIL - 텍스트RPG (0) | 2023.08.21 |
---|---|
내일배움캠프 (휴일) TIL - 블랙잭 C# (0) | 2023.08.20 |
내일배움캠프 (휴일) TIL - C# 기초 문법 (4) (0) | 2023.08.19 |
내일배움캠프 9일차 TIL - C# 기초 문법 (3) (0) | 2023.08.18 |
내일배움캠프 8일차 TIL - 스네이크 게임 C# (0) | 2023.08.17 |