웹 프로그래밍을 2020년에 처음 접했습니다.제가 작성한 코드가 웹 브라우저에서 바로바로 보이는 것이 신기하고 즐거움을 느껴서 계속 하고 있습니다. 그 때는 최신 기술을 이용해서 만드는 것이 개발을 잘하는 것이라고 생각하여 알지도 못하지만 최신 기술들의 문법을 따라치면서 대학교 친구들에게 자랑을 하곤 했습니다. 기초를 쌓는 시간이 없다보니 아무것도 모르는 것보다 어설프게 아는 것이 저에게 독이 될 때가 있었습니다.
개발실력이 하나도 없다는 것을 인지하고 대학교를 자퇴 후 국비지원학원을 등록하여 CSS의 inline, block의 차이 HTML의 semantic tag, non-semantic tag의 차이와 같은 기초부터 차근차근 배우기 시작했습니다. 자바스크립트의 bubble sort와 insertion sort를 배워 나가면서 값을 다루는 즐거움도 알게 되었습니다.
자바스크립트 function으로 객체 원형을 만들고 new 연산자로 인스턴스를 생성하는 방법을 배웠고, class를 사용해서 객체 원형을 만들고 new 연산자로 인스턴스를 생성하는 방법을 배우면서 자바스크립트가 어떻게 발전해왔는지 알게 되는 시간도 있었습니다. 또한 다른 언어에는 있지만 자바스크립트에는 아직은 도입되지 않은 static 변수를 생성하기 위해 클로저를 통해 만들어 내는 방법도 배웠습니다.
학원에서 주어지는 과제가 있을 때면 먼저 과제를 쪼개서 일의 우선순위를 정하고 컴퓨터의 입장으로 생각해서 어떤 방식으로 개발하면 좋을지 생각하는 제 자신을 발견할 때도 있었습니다. 거스름돈 계산기를 만들 때는 에러가 너무 많아서 관리하기가 힘들어서 검색으로 try…catch…finally문을 찾아내서 에러처리를 한 적도 있습니다. 이제는 검색이 너무 편하고 어떻게 검색해야 올바른 정보가 나올지 고민하게 됩니다.
개발을 처음 접했을 때 개발이란 ‘세상에 있는 문제를 소스코드를 통해서 해결하는 것’이라는 말을 들었습니다. 그래서 친구들에게 웹툰을 추천할 때마다 고민이 있었기 때문에 웹툰 추천 사이트를 만들게 되었습니다.
그것을 개발하기 위해 배우진 않았지만 혼자서 검색하고 삽질하며 Oracle Cloud를 이용해서 CentOS7기반의 서버를 만들게 되었고 express 프레임워크와 MySQL을 이용하여 개발을 하게 되었습니다. 동적인 페이지 구현을 위해서 서버에서 직접 코드를 만들어서 보내는 방법도 있지만, 나중에 유지보수할 제 자신을 위해서 pug를 학습하여 동적인 페이지 구현도 해냈습니다. 이 과정에서 백엔드 개발을 어떻게 하는지 체험하게 되었고 이 경험을 바탕으로 프론트엔드 개발을 할 때 백엔드 개발자의 입장에서 바라볼 수 있는 계기도 되었습니다.
지금은 예전에 최신 기술이 멋져 보일 때 따라쳤던 리액트를 다시 학습하고 있습니다. 아직은 CRA를 통해 프로젝트를 생성하고 결과를 확인하는 것까지만 했지만, 전에 배웠던 기억들을 되살려서 Class기반의 리액트 프로그래밍과 함수형 프로그래밍을 학습할 것이고 async~await을 통한 비동기로 값을 가져오는 연습을 할 것입니다. 자만하지 않고 항상 배우는 태도로 제 개발인생을 이어가고 싶습니다.
もっと見る