🙌 아래 다섯 문단(🔽)은 지극히 개인적인 이야기가 많이 담겨있습니다.
'김윤지'가 그동안 공부해 온 과정만이 궁금하다면 아래 🌎 여을심 코딩맵 부터 읽어주세요 :)
🔽 왜 '여을심' ?
나를 가장 잘 나타낼 수 있는 키워드는 뭘까. 나를 정의내리고 이쪽 저쪽으로 분리시키는 일은 재미있다. mbti 처럼. 우선 장점과 단점을 생각했다. 단점은 고집이 세다. 요즘 내려놓으려고 노력하고 있다. 딱 이 문장만 떠올리면 어느정도 가능하다. '세상일 원래 내 마음대로 안되고 내 뜻대로 살 수 없다. 섞여야한다. 고집부리지말자'
이 밖에도 단점은 많지만 내 입으로 떠벌릴 수는 없다. 아무도 내 단점을 몰랐으면 좋겠다. 흐흐 숨겨질지는 모르겠지만.
장점은 성실하다. 머리가 똑똑한 편은 아니지만 내가 가진 성실을 믿고 그냥 한다. 잘하든 못하든 그냥 계속 한다. 공부를 깊게 그리고 오래 하다보면 내면에서 어떤 세계가 열린다. 깨달음같은 것이긴한데 그걸 딱 뭐라 이름 붙여야 할지는 모르겠다. 아무튼 좋은 작용이 일어나는데 세상과 내가 맞닿아있다는 느낌이 들기도 하고 시야가 넓어진다. 내가 확장되는 기분이다.
여을심이 여기서 탄생했다. 내 삶에 열-심인 여을심과 세상에 열려있고 싶은 마음의 여을 심.
🔽 1일 1글
2020년 말부터 1일 1글 을 실천중 이다. 거의 일기지만, 군데군데 상상력을 동원한 가짜 수필 같은 것도 있다. 이 글을 쓰고 있는 현재(5/12)까지 136개 쌓였다. 1일 1글을 결심하게 된 것은 코딩을 공부하면서부터다. 코딩에 힘을 쏟기 시작했지만 코딩에'만' 힘을 쏟는 것은 오래가지 못할 것 같았다. 예술과 'Work'의 균형을 맞추기위한 혼자만의 프로젝트가 1일 1글이다. 그렇게 탄생한 나의 워라밸은 생각보다 내 삶을 견고하게 지탱했다. 매일 새벽에 일어나자마자 글을 쓰면 매일이 다르게 느껴진다. 공부 외에 다른 스케쥴은 없는 단촐한 하루지만 오늘과 내일이 다르다고 느낄 수 있는 건 매일 쓰는 글 덕분이다. 내게 의식적, 무의식적으로 많은 힘을 준다. 글 쓸 시간 아껴서 공부하자! 하면서 대충 글을 싸지른 날이면, 저녁이 되면 공부할 에너지가 없다. 엉금엉금 침대로 기어들어가게된다. 더 오래, 그리고 잘, 코딩하려고 나는 오늘도 쓴다. (티스토리 블로그에 매일 업로드할까도 생각해봤지만, 똥글도 많고 그 안에 허접한 내가 많아서 안올릴거다...)
🔽 미라클모닝
이미 유행처럼 번지고 있었다. 아침부터 저녁까지 책상에 앉아있어도 공부 시간이 늘 부족하다고 생각하고있었다. 미라클 모닝은 직장인들이 출근 전 두시간정도를 요긴하게 쓸 수 있는 방법이다. 이미 서점 베스트 셀러 가판대에서는 미라클 모닝에 관한 서적이 보이기시작했다. 유튜브에도 이런 저런 사람들이 미라클 모닝을 시도하고 있었다. 밤 열한시를 넘기기 전에 잠이들고 새벽 4시 반쯤 일어나, 어떤 사람은 운동을 하고 어떤 사람을 책을 읽었다. 오늘은 명상을 하고 다음날은 밀린 회사일을 하는 사람도 있었다. 어떤 것을 하든지 그 두 시간 남짓한 시간을 가치있게 쓰려고 하는 사람들이었다. 아침형 인간인 내게 맞겠다 싶었다. 그래서 쉬웠을까...?
약한 강도로 시작했다. 4시 50분 알람에 일어나서 정신을 깨우고 5시엔 책상에 앉았다. 내 미라클 모닝의 핵심은 잘 쉬어주는 것이었다. 코딩과 멀찍이 떨어져서 쉴 수 있는 시간을 갖는 것이 목표였다. 대부분의 날은 소설책을 읽고 글을 썼다. 5개월이 지났다. 미라클 모닝을 완벽하게 실천한 날과 어설프게나마 실천한 날. 그리고 완벽한 실패의 날을 번갈아가면서 허둥대고있다. ㅎㅎ
어설프게 실천한 날에는 늦잠이다. 여섯시에 일어났다. 7시는 공부를 시작해야하는 시간이라 늦게 일어나면 일어날 수록 책 읽을 시간이 줄어드는 거고, 1일1글의 퀄리티가 낮아지는거다. (똥글이 탄생한 배경이다). 완벽하게 실패한 날도 역시 늦잠이다. 일곱시에 일어나 책은 건너뛰고 허둥지둥 아침 일기를 쓴다. (여기서도 똥글이 탄생한다).
미라클 모닝은 계속할거다. 책읽을 시간을 정해놓지 않으면 책에 소홀해진다. 나한테 문학은 중요한 거니까 매일 아침 그 시간을 지켜나갈거다. 또 육개월 뒤에 보자. 어떻게 되나.
🔽 아이패드와 조용한 혁명
올해 내게 일어난 혁명적인 사건이있다면, 내가 더이상 다이어리를 쓰지 않는다는거다. 고1부터 2020년까지 아홉개의 다이어리가 있다. (하나는 잃어버렸다. 누가 훔쳐간 거일 수도 있다.) 매일 할 일을 적고 그것들을 하나씩 해나가며 얻는 성취감에 중독되어서 다이어리를 달고살았다. 그런데 다이어리를 접었다. 아이패드 때문이었다. 코드를 직관적으로 '조립'해보기 위해 올해 초 구입했고, 펜슬과 노트 어플로 스케쥴 관리를 하기 시작했다. 아마 아이패드는 내가 태어나서 산 물건 중 가장 잘 산 아이템이다. 혁명적이다.
컴퓨터에 이렇게 끄적이던 것을,
이렇게.
이렇게
이렇게 할 수 있다.
초딩 코더는 복잡한 코드를 이해하려면 직접 손으로 구성도를 그려봐야할 것 같았다. 하나하나의 문법은 그래도 좀 알겠는데, 그것들이 유기적 연결을 모르겠어서 답답했다. 펜으로 스윽스윽 코드를 따라서 줄을 긋다보면 전체적인 그림이 잡힌다. 요즘 알고리즘도 이런 식으로 공부하고 있다.
그런데 또 한번의 혁명이 예고된다. Notion. 한번 시도했다가 생각보다 어려워서 말았다. 아직은 기기로 쓰는 거지만, 타이핑이 아닌 손으로 글자를 적는 게 좋기도하고. 근데 여기저기서 추천을 많이해서 호기심이 생긴다.
아날로그인간에서 디지털 닝겐으로 거듭나려나,,,? 올해 참 많은 변화가 내게 일어나고 있다.
🔽 TIL와 블로그 개설
TIL
3월 1일부터 정원을 가꾸고 있다. 대부분 아직 자라지 못한 여린 풀들이고 폭풍같은 날에 맞서 강해진 풀들도 있다.
물론 대부분 잡초다...
깃허브를 알게된 건 코딩 공부를 시작해볼까 하던 참(작년 말)이었다. 처음엔 그렇게 계정만 만들어놓고 내버려뒀다. 그게 저 멀리 혼자 외떨어진 잡초하나다. 카카오톡 클론(HTML,CSS 화면구현)을 다 만들고 나서 그간 연습했던 코드들을 업로드했다. 그냥 다 만들어진 코드를 올리는 것은 의미가 없었다. 커밋할 때마다 보이는 코드의 변화를 알 수 는 없었으니까 말이다. 깃허브의 킷이 그건데. 뭐 이것도 잡초라고 할 수 있겠다. 그치만 잡초는 잡초를 불러모으는 법...ㅎ
그 후, 유튜브와 인강으로 자바 문법을 공부했다. 작년 11월, 코딩을 시작하고나서 매일을 공부했다. 이해가 안가는 문제들을 손으로 써가며 이해하려 노력했다. 문제를 풀 때 문법책을 들여다보고 덮고 반복했었다. 내가 이해한대로 문법들을 정리해봐야겠다 생각했고 깃허브가 생각났다. 근데 찾아보니 이미 깃허브에 TIL이라는 문화가 있었다. 밭 가꾸기가 여기서 시작된다.
학원을 다니고나서 그날그날 풀어본 문제도 있고 인강과 유튜브를 보면서 따라해본 게시판, 구구단 프로그램, 달력 프로그램 등등이 있다. 3월 중순, 학원 개강하기 전에 자바를 다시 정리해본 시간이 많은 도움이 되었던 것 같다. 1일 1커밋 운동을 여기저기서 하길래 나도 시도해보고 있는 중이다. 꼭 해야하는 거라고는 생각안하지만 하다보니 꾸준히 하고 있다. 근데 내가 커밋한 내용은 어디까지나 잡초다. 어쩔 수 없다. 좋은 퀄리티의 코드가 나올 때까지 열심히 잡초를 키워보는 수 밖에. 나도 언젠가는 다른 사람이 만든 코드에 기여해보고싶다. 코딩을 하다 발생하는 오류도 기록해놓아야 하는데, 막상 버그가 나면 디버깅하기 바쁘다. 습관을 들여야지 ,습관을.
블로그
반면, 블로그는 잠잠한 상태였다. 깃허브 정리를 하느라 블로그까지 관리할 시간이 없었다. 깃허브에 올린 내용을 블로그에 또 올리는 건 의미가 없을 것 같았고. 그래서 깃허브와 블로그에 올리는 카테고리를 분류해보았다.
깃허브
- TIL
- 만들어 본 프로젝트
- 문법 관련 코드들
- 10줄 이상 넘어가는 코드들
블로그
- 보다 개인적인 공부들 - 공부하다 생긴 질문,
- 코드를 짜다 맞이한 오류들
- 자바 500문제 풀어보기 프로젝트
- 읽은 책들
- 공부하면서 들었던 생각들
- 다른 사람들에게 도움이 될 만한 자료들
어제 (5월 27일), 블로그를 갈아 엎었다. 기존 블로그 스킨은 아티클 넓이가 너무 좁아서 코드 보기가 껄끄러웠다. 네이버 블로그를 하다 티스토리 블로그를 하려니, 좀 어렵다. 네이버는 블로그 요소가 다 통일되어있어서 어떤 디자인이든지 내가 넣고 빼고 하면 끝인데, 티스로리는 스킨마다 적용할 수 있는 요소가 다르다. HTML을 직접 만지고 CSS를 조금 수정해봤지만 적용되지 않는 부분도 있었다... 좀 더 심플하고 가독성 좋은 블로그를 만들고 싶었다. 두 세시간을 투자해 스킨을 고르고 카테고리를 정리했다. 지금 이 블로그가 그렇게 해서 만들어진거다. 로고 크기가 작은 것, 블로그 제목과 내 정보를 바로 볼 수 없다는 것 말고는 아주 맘에 든다. 블로그 리뉴얼에 맞춰 자바 100문제 리딩 프로젝트도 시작한다. 코딩왕이 될거다. 근데 이제 시행착오를 곁들인.
🌎 여을심 코딩맵
여을심? 얼마나 열심히 하는데? 지난 10개월간 공부했던 코딩 맵을 소개한다.
1. 20년 9월 [JAVA] 생활코딩
Hello (JAVA) World ..
내가 어떤 일에 대해 적성이 맞는지 아닌지 판단하려면 직접해보는 수 밖에는 없다 고 결론을 내렸다. 그래서 생활코딩으로 자바 문법을 먼저 공부했다. 빡세게는 아니고 하루에 몇시간만 할애해서 간만 보는 식으로 공부했다. 이때까지는 큰 흥미가 없었다.
[작년 9월 다이어리, 생활코딩 공부]
개발 언어라고 해서 잔뜩 긴장했지만 이해못할 언어는 아니었다. 중국어와 한국어가 다르듯이 다른 것이었다. 컴퓨터들이 정보를 주고 받기위해 이런 말과 이런 단어를 쓰는구나. 항을 대입할 때는 오른쪽에서 왼쪽으로 읽는구나. 정도의 느낌을 맛볼 수 있었다. 어려웠던건 객체라는 개념이었다. 객체 지향? 도대체 객체 지향이 뭔데? 억지로 이해하지 않으려고 애썼다. 한국어로 개발 언어를 이해하는 건 한계가 있었다. 체득이 중요한 것 같았다. 그 체득을 어떻게 해야할지 몰라 토익 공부하듯 단어들을 노트에 정리했다. 참...순수했다... 개발유튜버들을 찾았다. 그들의 개발 공부법을 요약하자면 대략 이러했다.
1. 그냥 만들어봐라.
2. 반복하고 또 반복해라. 같은 코드를 계속 쳐봐라.
3. 멘토를 찾아라. 열심히 물어봐라.
2. 20년 11월 [안드로이드 앱 만들기] 홍드로이드
JUST DO IT ? 할 수 있음 하고 싶죠
그냥 만들어보라길래 유튜브에서 안드로이드 앱을 만드는 커리큘럼을 찾았다. 안드로이드 앱 개발자 홍드로이드님이 운영하는 채널인데, 라이브 코딩도 진행하시고 안드로인드 관련 영상으로 활동하고 계신다. 이때는 "개발 = 앱 만드는 일" 이렇게만 인지하고 있던 터라 내가 앞으로 해야 할 일이 앱만드는 건줄 알았다. (현재는 웹을 열심히 공부중이다.)
그땐 코드 관리가 중요한지도 몰랐을 때라 코드를 어디다 두고 없어져서 사진 밖에 남지 않았다.... 코틀린이 대세라고 해서 코틀린으로 만들어보고 싶었지만 자바도 제대로 이해하지 못하고 있는 상황이었기 때문에 '자바로 만드는 안드로이드 앱' 을 보면서 그냥 따라쳤다. 타자 몇 번 두들기니까 정말 앱처럼 만들어져서 신기했다.
그래서 1번 방법 '그냥 먼저 만들어봐라' 가 내게 맞았냐. 하면 그건 아닌 것 같았다. 버튼을 누르면 넘어가는 화면이 신기하긴해도 머릿 속으로 무언가가 들어오는 느낌이 없었다. 그냥 체험하는 기분이 들었다. 나라는 사람은 어떤 기술을 익힐 때 JUST DO IT보다 WHY가 중요했다. 그래서 이걸 WHY해? 이 메소드가 WHY 필요해? 그런데 그 WHY는 기본 지식이 쌓여야 해결될 수 있는 것 같아서 다시 이론 공부로 돌아갔다.
3. 20년 11월~12월 [HTML&CSS] 생활코딩
첫 프론트 스타트!
첫 코딩 공부로 HTML을 추천하는 글이 있었다. 생활 코딩의 HTML, CSS 으로 웹 기본 언어를 공부했다. 자바보다는 수월하고 눈에 직관적으로 보이니까 재밌었다. 폰트사이즈를 줄였다 늘였다, 마진 값을 줬다가 없앴다, 하면서 프론트의 세계는 이렇구나... 했었다. 생활코딩에서의 실제 교육은 다른 사이트를 만드는 건데, 나는 영화 리뷰 사이트를 만들었다. 토글 버튼을 저렇게 외딴 곳에 떨어뜨려놔도 기분이 좋았다. 공부한만큼, 시간을 들인만큼, 정성을 준 만큼. 더도 말고 덜도말고 딱 그만큼 정직하게 결과물이 나왔다. 개발은 이런 거구나. 점점 개발로 빠져들기 시작했다.
4. 20년 12월 [멘토찾기] 인프런 < 8명의 비전공자는 어떻게 개발자로 취업했을까 >
어라? 개발자 나랑 좀 맞을 것 같은데?
본격적으로 개발공부를 어떤 방향으로 해야할지, 프론트와 백엔트 중 내가 더 즐겁게 일할 분야는 뭘지... 등등. 이런 저런 궁금증들을 물어볼 사람이 없었다. 멘토를 찾고 싶어서 개발 유튜버에게 댓글을 달았지만,, 다들 바쁘신지 질문에 답이 없으셨다 ㅠ_ㅠ 그러다 찾게 된 사이트가 '인프런'이었다. 저렴한 가격에 좋은 강의들이 많은 온라인 개발 교육 공간이었는데, 멘토링 프로그램같은 것도 있었다. 여기서 혹시나 내 멘토를 찾을 수 있지 않을까해서 두리번대다가 찾았다...!
국비 수료 과정을 밟을까 말까 고민했다. 나처럼 비전공자이면서 국비 수료과정이나 부트캠프를 수료한 사람들의 이야기를 듣고 싶었다. <8명의 비전공자는 어떻게 개발자로 취업했을까> 라는 강의가 딱 내가 찾고 있던 강의였다. 학원을 가기 전에 어떤 공부를 하면 좋은지, 어떻게 공부를 하면 좋을지. 포트폴리오는 어떻게 만드는지 등등의 조언들을 들을 수 있었다.
어라? 개발자 나랑 좀 맞을 것 같은데? 라고 생각하게 된 두가지 지점이 있다.
우선 첫번째, 평생 공부를 해야한다는 점이다. 졸업하고 공부를 더 하고 싶어 대학원에 진학할까 생각해봤었다. 열 몇시간 앉아있는 일은 어렵지 않다. 머리가 똑똑한 편은 절대 아니다. 하면 할 수록 더 배워가고 늘어가는 것을 즐길 뿐이다. 천재형이 아니기 때문에 얻게 된 나의 성실이 나는 좋다. 강사님은 개발자는 트렌드에 맞춰 언어를 계속 공부해나가야한다고 하셨다. 지속적인 발전을 하려면 평생 공부할 각오가 되어있어야한단다. 쉽진 않겠지만 , 내가 삶에서 지향하는 바와 같다고 느꼈다. 평생하다보면 언젠가는 코딩이 그냥 내 피부처럼 느껴질 때가 오려나...? 잠 안오면 코딩하고, 밥먹으면서 코딩하고 그렇게 자연스럽게 하게 되려나...?
두번째 , 다른 사람들을 즐겁게 할 수 있다. 전에 직장 생활을 잠깐 해보았을 때 , 참 지루했다. 왜 해야하는지 스스로 설득이 안가는 일을 하루종일 한달 내내 해야한다는 게 좀 갑갑했다. '나의 것'을 만들고 싶었다. 내 힘으로 만든 서비스가 다른 사람들에게 즐거움이 될 수 있다는 것. 이 점이 나를 설레게 한다. 생각보다 개발은 생활 곳곳에 녹여져있다. 개발 공부를 하기 전과 후의 시각은 많이 달라졌다. 어플을 보면 버튼이 왜 여기에 있는지, 메뉴를 왜 이렇게 나뉘었는지 추측을 하게된다. 재밌다.
이 밖에도 여러 유용한 사이트들과 클론 코딩, 포트폴리오 만드는 법 등 여러가지 조언을 얻을 수 있었다. 내가 제일 궁금했던 것은 어떻게 공부해야하는지 였는데, 거기에 대한 답도 얻었다. 메소드들을 다 외워야되는 건가 하는 막연함과 순진함같은 것들이 있었는데, 답은 그러지 않아도 된다. 였고, 문제가 생기면 해결책을 잘 찾아 쓰는 법을 배우면 되고, 어느정도 삽질의 시간은 필수적이고, 머리로 그림이 안그려지면 손으로 우선 써보고 문장으로 써보는 습관을 들이면 된다. 그러니까, 하면 된다 였다. 개발 공부에 대해 방향성을 잡을 수 있었다. 감사하고 감사하다 ㅠ_ㅠ 이런 것에 목말라 있었던 내게 그는 단 물이 되었다....🖤
이 강의를 들으면서 내 성향이 개발과 좀 맞다는 판단을 얻었고, 이건 내게 아주 중요한 거였다. 국비 수료를 밟기로 결정했다. 의심하지 말고 그냥 열심히 하자 가 되었다. 그리고 나는 좀 긴장하기 시작했다.
5. 21년 1월 [클론코딩(카카오톡 , 크롬 앱)] with. HTML, CSS, Vanilla JS / 노마드코더
재미를 느낄 때까지
유튜브에서 유명한 개발자들이 몇몇 있었는데, 그 중 하나가 노마드코더였다. 9살때부터 코딩을 하기 시작한 천재형 풀스택 개발자이다. 현재는 코로나 때문에 한국에 머물며 정착 생활 중이지만 원래는 노마드 삶을 실현하고 있는 개발자였다. 그가 운영하는 온라인 교육 사이트를 찾아 들어가 보았다. 클론 코딩할 수 있는 커리큘럼이 많았다. 난 초급자에게 추천하는 HTML/CSS 카카오톡 클론을 수강했다.
내가 방금 친 코드가 뚝딱하고 바로 사이트에 나타난다. 이른바 즉석 코딩. 그 맛에 빠져 챌린지 프로그램까지 참여했다. 매일 하루에 하나씩 과제를 받아 하루종일 그거 가지고 놀고 씨름했다. 기세를 싣고 바닐라JS로 크롬 앱에도 도전해보았다. 열두시 마감 전까지 하루종일을 한달 정도 하고나니 '코딩' 해볼 만 하겠다 싶었다. 이런 재미로 코딩을 하는 거라면 'JAVA'도 하고 또 하면 되지 않을까 싶었다. 재미를 느낄 때까진 그냥 열심히 해보는거다.
6. 21년 1월~ 2월 말 [Re-again JAVA] 패스트캠퍼스
<자바의 늪>
본격 자바 공부
생활코딩으로 자바 이론을 공부했지만, 뭐랄까. 좀 밍밍했다. 그걸로 뭘 할 수 있는지도 몰랐고 문제도 풀 수 없었다. 진지하지도 않았다. 짭짤하고 진득하게 자바를 알고싶어졌다. 자바 기초부터 잘 다져주는 퀄리티 있는 강의를 찾아냈다. Do it! 자바 프로그래밍 입문 저자 박은종 교수님이 진행하시는 강의였는데, 짤막한 설명 뒤에 예제로 바로 보여주신다. 매일 서너 개의 강의를 듣고 문법을 따로 정리했다. 온라인 강의를 박은종 교수님에게 들으니 참고 서적은 다른 전문가가 쓴 걸 보고 싶었다. 같은 이론을 다른 예제로 참고하려고 하기도 했고, 어려운 이론을 다르게 이해할 수 있는 방법을 나름 찾으려고 시도한거다. 같은 출판사에서 나온 생활코딩! 자바 프로그래밍 입문을 샀다. 유튜버에 있는 생활코딩 영상의 대본급으로 100% 일치하는 설명과 예제였지만, 귀로 듣는 것과 눈으로 읽는 것은 또 다르니까 걍 샀다.
온라인 강의를 들으면서 내가 하는 공부법이 맞는건가, 하는 의심을 하게된다. 화면 안에서 선생님이 치는 코드를 따라치긴 하는데, 그러느라 중요한 설명을 놓쳐 다시 듣기도했다. 여러가지 방법을 시도해보았다.
✔ 코드 설명할 땐, 설명만 듣고 따라치는 건 강의가 다 끝나고 코드를 보면서 선생님의 설명을 내가 리플레이 해보기
✔ 2.0배속으로 듣지 않기.
✔ 들었던 강의를 한번씩 더보기
통했던 것도있고 아닌 것도 있지만, 1번은 많은 도움이 되는 것 같았다. 나 혼자 직접 코딩을 해보는 과제도 있었는데 어려워서 나는 바로 해설 강의를 봤다. 이론은 이론일 뿐이었다... 대신 쳤던 코드의 알고리즘을 그려가면서 이해하고 익히려고 했다. 그래도 이해는 이해일 뿐이었다... 어찌됐건 손으로 직접 코딩해보는게 제일 잘먹히고 또 중요한 것 같았다. 요즘도 온라인 강의를 듣고있는데, 다시 이 방법들을 써봐야겠다.
패스트 캠퍼스에서 진행하는 JAVA 교육 커리큘럼은 3개로 나뉜다.
PART 1. 자바 기초 문법
PART 2. 객체 지향 프로그래밍
PART 3. 스프링부트 프로젝트 실습
국비 교육을 앞두고있어서 선행학습에 대한 조급함이 있었다. 학원 선생님께 여쭈어보니 학원 수료생들이 스프링부트에서 많은 어려움을 겪는다고 하셨다. 스프링 부트를 시도해보았다. 강좌는 스프링 기초나 입문 강의가 아니었다. 바로 프로젝트 실습으로 뛰어들어가는 거였다. 이제 생각해보니 무리수....였다. 거봐 시행착오 많다고 해짜너 ㅠ
7. 21년 2월 [스프링부트]
스프링부트 , 난관의 난관의 난관을 더해서 🤣🎵
스프링부트가 뭔지, 왜 쓰는지 이유도 모른 채 하라는 대로 따라했다. 의미가 없을 것 같아, 아이패드에 하나하나 캡쳐를 해서 필기했다. 매핑, CRUD, 페이징 처리, 상세조회처리 등등 많은 것을 알 수 있는 강의인 것 같아보였지만, 난 얻을 수 있는 것이 없었다. 아는 게 없어서 보이는 것도 없었다. 이래서 코딩이 쉽지 않다고 하는 거구나... 스프링부트를 하면서 처음 느꼈다. 서점으로 달려갔다.
<스프링 철저입문><JPA Quick Start>를 샀다. 스프링과 스프링 부트의 차이도 몰랐을 때 였다. 목차를 열고 강의에 나왔던 단어들을 찍찍 그었다. 하나씩 살펴보자는 생각이었다. 덕분에 대충 mapping을 왜 하는지는 알게 되었다. 근데 읽으면 읽을수록 내가 모르는 것이 엄청 많구나를 느꼈다. 엄청나게 크고 넓은 세계에 발을 들인 것 같았다.
강의는 뒤로 갈 수록 비슷하게 굴러갔다. CREATE, READ ,UPDATE, DELETE 를 반복해서 만든 기억이 어럼풋이 난다. 그래도 무작정 따라하기라도 해보자 하는 심정으로 꾸역꾸역 했다. 그렇게 스프링부트로 어드민 프로젝트 만들기를 끝냈다. 이론이 필요했다. 어떤 원리인지 그 근본이 궁금했다. 여기저기 찾아보다가 김영한 개발자님이 강의하는 스프링 입문 강의를 발견했다. 일주일 안에 다 봤던 것 같다. 간지러웠던 부분이 해소되었고, 도움이 많이 되었다. 그러나 그게 내것으로 된 것 같지는 않았다. 무언가 중요한 단계를 내가 빠뜨린 채 온 것 같은 기분이 계속 들었다. 그걸 찾아야 했다.
이쯤에서 ... 스프링 공부를 실패했던 이유 ?
내가 자바를 하고 바로 스프링 프로젝트를 시도했던 것은 스프링이 어렵다고들해서다. 어려우니 학원에서 진도를 나가기 전에 미리 해보자 하는 생각이었다. 그렇지만 기초가 탄탄하지 않은 상태에서 그리고 이론과 원리가 제대로 서지 않은 상태에서 하려니 힘들었다. (공부해야하는 이유도 충분치 않았다.) 사람마다 코딩을 익히는 방법이 다른 것 같은데, 나는 이론과 문법을 포함한 토대가 머릿 속에 잘 정리되어 있어야 다음을 나아갈 수 있는 스타일이다. 코딩공부가 처음이라 그런 거일 수도 있다. 요즘 파이썬으로 알고리즘을 공부중인데, 문법은 깊게 공부하지 않고 문제 풀이만 하고 있다. 근데 몇번 하다보니 문법이 눈에 들어온다. 코딩 공부를 하는 방식은 사람마다 다르고 시기마다 다른 모양이다.
8. 21년 2월 [두번째 멘토] 인프런 < 개발자 취업 All In One Guide >
나는 부족한 사람이야. 그래? 근데 어떤 게?
다시 멘토를 찾아야헀다. 지금 단계에서 뭘 공부해야할지를 알기 위해서다. 찾았다면 그 공부를 해야하는 이유도 답이 나와야했다. 인프런에서 '개발자 취업 올인원 가이드'를 발견했다. 한정수 개발자님이 개발자를 목표로하는 비전공자 대상으로 '운영'하고 있는 강의였다. 지속적으로 업데이트를 해주시는 것 같았고, 개발자 또는 개발 자체에 대한 엄청난 정보가 담겨있어서 그 자체로 생생한 현장같았다. (현재는 멘토링도 진행중 이시다.) 운영하고 있다는 느낌을 받았던 건, 한정수 개발자님의 열정이 한몫했다. 현재 내 상황에서 꼭 필요한 조언들은 다 들은 것 같다.
내겐 너무나 중요했던 인사이트 하나만 꼽자면 ,
프레임워크 공부를 멈춰라.
나는 기본이 잘 세워지지 않은 상태였다. 자바를 두어 달 공부했지만, 인터페이스를 왜 쓰는지 조차도 몰랐다. 간단한 알고리즘 문제도 구글링 없이는 풀지 못했다. 찾던 것을 찾은 느낌이었다. 내가 지금 집중해야할 것은 본질이었다. 가장 기본, 기초가 되는 언어를 잘 다져놓으면, 다음에 배워야할 것이 스스로 보일 것 같았다. 매일 인터넷 강의를 들으면서 인풋만 넣는다해도 연습이 없으면 스스로의 아웃풋은 나오지 않는다. 다시 자바로 돌아갔다. 기본으로.
9,10. 21년 3월초 [Re-Re-Againg JAVA] + GitHub(Markdown)
<자바의 늪 2>, 완결은 없다.
전에 들었던 자바 강의를 처음부터 끝까지 다시 봤다. 이론과 문법을 깃허브 TIL에 정리했다. 뉴렉처라는 유튜브 강의와 남궁성 전설(저서)의 <자바의 정석> 도 참고했다. 두 번 보니 그제서야 이해가 되는 것도 있었지만, 두 번 보니 더 헷갈리는 것도 있었다. 완벽을 버리고 그냥 넘어가기로 했다. 어차피 자바는 될 때까지 계속 공부할 마음이었다. 자연스럽게 이해되고 코드를 치게될 날이 올 거라고 생각했다.
뭘 좀 만들어봐야 할 것 같았다. 인프런에서 무료강의를 찾았다. '만들어가면서 배우는 JAVA 플레이 그라운드'. 달력만들기와 구구단 출력 프로그램을 만들었다. 구구단 출력 프로그램은 이해가 쉬워 잘 따라갔지만, 달력만들기는 알고리즘이 낯설었다. 내가 코드를 보고 이해할 수 없는 것들이 '알고리즘 ' 이라고하는 영역이구나 깨달았다. 공부해야 할 것이 스스로 보였다. <자바의 늪 2>면 완벽할 줄 알았는데 아니었다. 완결은 없었다. 요즘은 자바 문제 풀이와 파이썬으로 알고리즘 공부를 병행하고있다.
자바 이론 TIL를 하면서 깃허브 이용법을 더 익혀야겠다는 생각을 했었다. 관련 정보는 블로그 여기저기에 많이 있었다. 깃허브는 갓대희님 블로그를 참고했고, 마크다운은 박영웅 개발자님의 블로그 를 이용했다. 박영웅님은 프론트 개발자이신데, 블로그에 여러 프론트 기술법을 포스팅하고 계신다. 특히, '입문자에게 추천하는 HTML, CSS 첫걸음' 이라는 제목의 포스팅은 왠만한 유료 강의보다 잘 정리가되어있어서 프론트에 첫 발을 들이시는 분들께 강추한다. 현재는 패스트캠퍼스에서 프론트 강의를 진행하고 계신다.
11~13. 21년 4월 초 ~ 5월 중순 [JSP와 SERVLET, DB]
GET, POST가 뭔데?
스프링을 할 때 내가 부족했던 지식들은 서버에 있었다. HTTP와 HTTPS의 차이도 몰랐을 시절이었다. 인프런에서 무료 JSP강의를 찾았다. '실전 JSP - 신입 프로그래머를 위한 강좌'. 아주 큰 틀에서 서버의 흘러가는 구조를 이해할 수 있었다. 직접 연습할 수 있는 커리큘럼을 또 찾았다. JSP 웹 쇼핑몰 프로그래밍 기본 과정(JSP WEB Programming)이다. 간단한 로그인과 회원가입 그리고 게시판을 DB와 연동해 JSP와 SERVLET으로 구현하는 훈련을 했다. 오래된 강의지만, 선생님의 열정과 독려가 느껴져서 열심히 공부했다. 학원에서 DB 쿼리문 수업을 나갔지만, 그게 전부일까 싶었다. 성에 차지 않아서 또 무료 강의를 찾아 ORACLE DATABASE PL/SQL 11 으로 공부했다. MYSQL와 ORACLE의 문법은 조금씩 차이가 있지만, 대부분 비슷했다. 블로그에 DB문법을 따로 정리했다. DB 문법은 자바 문법과 다른 세계 언어라고 확실히 느꼈다. DB는 뭔가 더 정적이고 융통성이 없고 고집이 있는 것 같았다. DATA를 다뤄야하기 때문이라고 생각한다. 한 문장으로 모든 데이터를 날릴 수 있기 때문에 융통성이 통하지 않아야 맞는 것 이 DB의 세계 같았다. 학원에서는 JSP와 SERVLET을 짧게만 배워서 혼자 공부해두었던 게 세미 프로젝트를 할 때 큰 도움이 될 것 같다. 지금까지 공부했던 걸 확인해볼 수 있을 것이다. 기대중이다. 😉
지금까지의 순환을 정리해보자면 이렇다. 나는 스프링을 공부하기 위해 자바의 기초로 다시 돌아갔고 자바 문제풀이를 하면서 알고리즘 공부의 필요성을 느꼈다. 그와 동시에 JSP와 SERVLET으로 서버를, DB롤 데이터 베이스를 공부했다. 어떤 공부를 하려면 그 필요성이 마땅해야한다. 경험상 해야하니까 하는 학습은 오래, 멀리 가지 못했다.
그래서 난 바로 스프링으로 뛰어들어갔느냐. 아니었다.
14. 21년 5월 중순 ~ 5월 말 [자바 스크립트]
학원 수업에 맞춰 복습도 해야됐다. 이쯤 학원에서는 HTML, CSS 를 배우고있었다. 다시 HTML을 복습하는 셈이 되었다. 몇 달 전에 했던 카카오톡 클론 코딩을 떠올리며 수업을 들었다. 그런데 다시 하려고 보니 뭔가 아득했다. 일년이 지난 것도 아니고 겨우 4-5개월 지났을 뿐인데 잘 기억이 나지 않았다. 아니, 기억이 나지 않는다기보다 감각이 없어졌다. 신나게 따라치던 그 감각. 스타벅스 홈페이지 따라 만들기를 다짐했던 이유다. 패스트 캠퍼스에서 스타벅스 따라만들기 강의를 통해 어찌저찌 그 감각을 좀 되살려보았다.
몇번 해보니 그 감이 살아나는 것 같았다. 이번에는 자바 스크립트 공부도 곁들였다. 문법은 간단하게 익히고 필요한 기술만 골라 가져다 썼다. 관련 강의를 찾아 보는데, 선생님께서 하신 말씀이 기억난다. HTML을 하다가 JAVASCRIPT를 보면 확 어려워지는데, 그건 JAVASCRIPT가 어려운 게 아니라 HTML, CSS 같은 레이아웃 중심의 개발방식에서 JAVASCRIPT같이 데이터 중심의 개발방식으로 사고가 옮겨져야 하기 때문에 어렵게 느껴지는 것 이라고. 암만!
15. 21년 6월 현재 하고 있는 공부 ....ing ?
다시 스프링으로 돌아오기까지 긴긴 여정이었다. 다시 자바로 돌아가 공부하고, JSP와 SERVLET 을 길게, DB와 프론트를 맛보는 것 까지...
그래도 몇 단계를 밟아서 스프링 부트를 하려니 좀 눈에 들어온다. 그러니까 스프링은 자바의 Transformers Optimus Prime 인 듯 하다. 변화무쌍하게 최적화하는 가장 좋은 프레임워크. 아직은 느낌상으로만 말할 수 있는 단계다. 이제 막 DI와 AOP를 배웠다. 하지만, 주입이 왜 필요한지에 대해서는 이제 말할 수 있다. 누군가 내게 물어봐줬으면 좋겠다. 주입이 왜 필요해요? 아, 그건 지금까지 객체를 new로 생성해서 제가 관리해짜나여? 근데 이제 스프링이 그 역할을 하는거에여. 제어를 관리하는게 내가 아니라 스프링이 하는거져. 권한이 넘어갔기 때문에 해당 객체를 제가 쓰려면 스프링한테 의존 주입을 받아야되는거져. 아시겠어여? 라고 대답하게.
파이썬으로 알고리즘도 공부중이다. 파이썬은 공부해두면 좋을 것 같기도했고, 자바로 알고리즘 문제를 푸는 것보다 파이썬이 훨씬 쉽기 때문에 택했다. 자바로 최단 경로를 공부했을 때보다 파이썬으로 공부했을 때 훨씬 이해가 빨랐다. 직접 처음부터 끝까지 문제를 푸는 건 능숙치 않지만, 어차피 나중에는 될꺼다. 혼자서 될 때까지 할꺼니까...........peace.
아직 개념을 배우고 있지만, 하루빨리 스프링부트로 프로젝트를 해보고 싶다는 생각이 든다. 스스로 아웃풋을 만들어내는 것이 개념과 실체를 이어주는 유일한 길인 것 같다. 해보고 싶은 프로젝트를 구상 중이다. 릴레이 소설을 써가는 sns는 어떨까. 한줄이든 열줄이든 여러 사람들이 한 소설을 써가는거다. 기간을 정해도 좋고 무기한으로 해도 좋고 유명한 소설의 한 단락부터 시작해서 다른 결말을 내놓는 소설도 좋고. 나는 재밌을 것 같은데, 만드는 방법은 모른다. ㅎㅎㅎㅎ
서비스를 누리고 즐기는 것과 직접 만드는 건 다르다.... 며칠 내내 한 문제에 매달리면서, 프로그램 삭제와 재설치를 반복하며 잠을 설쳐보면서, 코딩하는 꿈을 꾸면서 느꼈다. 덕분에 문제 해결했을 때의 쫄깃해지는 심장도 느껴본 적이있다. 육지에서 뛰어오르는 물고기처럼 심장이 팔딱팔딱댔다. 짜릿해서 춤을 췄다. 나는 범접못할 영역이라고 생각했는데 해보니 이거 인간이 못할 경지는 아니구나? 싶다. 계속 할 수 있을 때까지 계속 할 거다. 여을심히!
'회고 > 여을심은 열심중 2021 회고' 카테고리의 다른 글
여을심의 빠른 하반기 회고 그리고 이머전시 리페어 (0) | 2021.10.23 |
---|