티스토리 뷰

회고록

2018- 학생 개발자로써

dhtmdgkr123 2018. 12. 11. 13:47

2018 회고

2018년도 한 해가 거의다 끝나가는 시점이다.

프로그래밍을 시작한지 1년 9개월쯤...


작년 말에는 '회고'라는 단어 자체를 몰랐지만. 올해는 알았기에 써본다.


1. 학식 구매 프로젝트

    ㄴ 프로젝트 동기

        ㄴ 이 프로젝트를 하게된 계기는 생각보다 매우 단순하다. 다름아닌 키오스크 앞에 줄서있으며 기다리는 시간, 그리고 주문을 하고 자리찾아 삼만리 하는 행동이 매우 싫었다.

           이러한 아이디어가 있어서 프로젝트를 시작했다. 나는 backend 개발을 주로 해서 html, css(퍼블리싱)은 일부 기능 부분에서는 거의 안되어 있는 상태이다.

           그리고 웹 페이지를 앱으로 패키징 하여 결국 웹으로도, 앱으로도 되는 어플리케이션을 만들고자 시작했다.

           맨 처음 7월 즉 방학 초기에 개발을 시작하여 총 2회동안 코드를 새로 제작했다.

           지속적 리팩토링을 통한 내가 만족하는 코드가 나왔고 쿼리는 아직 많이 부족하지만 그래도 내 나름대로 많은 발전이 있다고 생각한다.

    ㄴ 사용된 기술, tool

        ㄴ os : ubuntu 16.04 LTS

        ㄴ nginx : 원래는 apache2을 사용하다가 이번에 좀더 내 나름대로 인프라에 대한 다양한 공부를 위해 httpd 대신 nginx를 선택하여 sites-available/default file를 핸들링 하였다

        ㄴ php7 : 원래 framework 없이 만들었지만 codeigniter3 framework 를 이용하여 코드를 리팩토링을 하였다. 그리고 ci에서 제공해주는 helper 함수들을 매우 적극적으로 활용,

                 그리고 나만의 helper 함수들( jsonEcho, xssCleaner, redirect with refresh, setJsonHeader 등등... )을 만들어서  사용하였다.

                 가장 크게 배웟던 부분은 MVC 패턴이다. 디자인 패턴이란 하나도 몰랐던 나로썬 매우 신기하며 편하고 익숙해지니 MVC를 벗어나지 못하는 편안함을 주는 패턴을익혔다.

                 또 OOP에 대한 개념을 확실하게 잡게된 계기이다.

        ㄴ editor

            ㄴ vscode

        ㄴ DB : 원래 mysql을 사용했지만 이번에 다른 database를 사용하고자 maria db를 사용했다. mysql에서maria db를 채택 한 이유중 가장 큰 부분은 license 부분이다. 교육용으로썬 무료로 배포된다, 하지만 상업용으로썬 license를 구입해야한다. 물론 이 프로젝트는 상업적 프로젝트가 아닌 본인의 개인 포트폴리오 용 프로젝트지만... 그리고 두번째로는 ci와 maira db에 관한 연동도 한번 해보고싶었고 무엇보다 pma, nginx와 같이 연동하는 초기 인프라 작업을 직접 해보고싶어서 사용했다.


    ㄴ 프로젝트를 통하여 느낀점

        ㄴ 코드는 내가 작성한 코드지만 다음날에 보면 상당히 지저분함을 느낀다. 그리고 수정을 하게된다. 이러한 연속이 발생하여 산출물이 나오는데 시간이 많이 걸린 거 같다.

        그리고 기획에 대한 고찰을 다시 한번 해보아야 한다.

        본인이 기획을 할 줄 몰라 맨 처음 리팩토링 전에는 무작정 코드만 작성했다.

        하지만 내가 원하는 기능이 맞나? 라는 생각을 다시 한번 하게 되고 기획서에 대한 작성도 리팩토링 하는 과정에서 하게 되었다.

        이를 통해 기획의 중요성을 상당히 많이 깨달았다.

        물론 이전 회사에서 기획이 하나도 없어서 클라이언트가 무엇을 요구하는지 파악하는데 상당히 많은 시간을 썻음에도 똑같이 바보같은 행동을 통하여 다시한번 깨닫게 되었다.

        기획을 못해서 database 에 대한 relation설계역시 힘들었다.

        그리도 두번째로는 join문에 대한 이해가 확실히 높아졌다. 학교 과제로도 database 시간에 join 과제가 나왔고 과제는 손으로 작성해서 제출하라고 했지만

        본인 실력향상을 위하여 직접 과제에 나온대로 relation 설계를 하고 과제의 요구사항대로 쿼리를 직접 작성했다.

        이때 join을 프로젝트할때 많이 써봐서 그런지 생각보다 매우 쉽게 느껴졋다. 많이는 아니지만 relation이 하나의 집합이라는걸 느꼇고

        이 relation이 join되고 교집합 관계라는걸 책에서만 이론적으로 깨달은게 아닌 몸소 깨달았다.


        앞으로 배우고 develope 할 stack는 html, css, 그리고 kotlin에 대해 공부를 할 것이다. 그리고 현재 페이지를 webapp을 만들던지 native app을 만들던 지 

        둘중 하나는 내년 초에 반드시 이루어 낼 것이다.


2. LinuxServerControl

    ㄴ 프로젝트 동기

        ㄴ 학교 연구실에 있을 때 서버에 대한 조작을 매일같이 했어야 했다. 교수님이 지시를 할 때 마다 직접 가서 해야하는게 매우 싫은 나머지

           웹페이지를 이용해 간단한 interface를 만들어 사용했다.

           이 프로젝트는 2017년 9월중순에 시작하여 최초 commit는 2018년 1월이다. 내가 맨 처음 시작한 프로젝트 이다.

    ㄴ 사용된 기술, tool

        ㄴ os : ubuntu 14.04LTS

        ㄴ php7

            ㄴ lib : ssh2

            ㄴ 맨 처음으로 사용한 php라 많이 어려웠다. 하지만 어렵고 '삽질'을 많이 한 만큼 배운점도 많아서 매우 유익한 프로젝트가 되었다. 비록 html, css는 지인을 통하여 받았지만 backend는 본인이 직접 다 구현을 하여 매우 뿌듯했다!

        ㄴ git

            ㄴ 맨 처음 git을 쓸땐 많은 어려움이 있었다. 하지만 갈수록 쓰다보니 익숙해지고 또 버전관리가 되어 나쁘지가 않았고 비록 git의 경험을 이것저것 많이 해본 것은 아니지만 그래도 git pull commit push, branch

            에 대한경험을 해봐서 나중에 git을 사용할 때 나름 익숙하게 사용 할 수 있다.

        ㄴ editor

            ㄴ vscode


    프로젝트를 통하여 느낀점

        ㄴ 첫 프로젝트라 그런지 코드가 많이 정돈 안되어있고 개선해야 할 부분도 상당히 많다.

          내년에는 이러한 개선점을 직접 리팩토링 하며 또 더 나아가 mvc framework를 직접구현하여

          이미 알고있는 oop지만 interface 설계에 좀더 친숙 해지고

          또 보안적 측면을 많이 보완 할 예정이다.특히 세션 보안에 대해 다시한번 공부를 해볼 필요가 있다.

          왜냐면 현재 보안적 측면에서 많이 부족하다. 그리고 쉘커멘드를 실행 할 때 보안이 많이 부족한 편이다. 그리고 무엇보다 web shell이 interactive하지 않다. 이러한 부분에 대해서는 좀더 고민을 해볼 필요가 있다.

          그리고 구조에 대한 부분도 interface, class 설계를 하여 구조에 대한 개선도 할 것이다.

          현재 mvp 패턴에 대한 관심도 많다. 나중에 mvp 패턴을 경험을 많이 해보고 mvp 패턴을 공부하여 mvp framework도 만들어 보고 싶다. 이와 더불어 깃을 사용하긴 했지만 매우 미약했다.

          나중엔 깃을 좀더 적극적으로 활용하고 또 해당 php, js, html, css 코드에 대한

          리팩토링을 많이 진행 할 것이다. 


3. LEMP-auto-installer

    ㄴ 프로젝트 동기

        ㄴ 매일같이 서버를 세팅하는것에 신물이 난 나머지 쉘 스크립트를 하나 만들어 스크립트를 하나 돌리고 그 다음 점심 또는 휴식 시간을 갖기 위하여 제작한 스크립트이다.

           개발 기간은 상당히 짧은 기간 내에 진행했지만 개발 결과는 매우 만족을 하는 스크립트 이다.시험기간 중 시험공부를 하기 싫어서 또 나에게 상당히 필요한 부분이라 스크립트를 만들었다.

           생각보다 매우 좋아서 또 나에게 매우 유용한 스크립트라서 상당히 뿌듯하다. 나중에 좀더 로직을 추가하여 좀더 develope하여 좋은 스크립트를 만들 예정이다. 이 프로젝트는 php7, nginx, pma, mariadb, vsftp, ssh-server를 한번에 setting 해주며 ssh와 ftp는 root access를 한번에 설정해주는 script 이다.

    

    ㄴ 사용된 기술

        ㄴ os : ubuntu 16.04

        ㄴ shellScript



3. myTube

    ㄴ 프로젝트 동기

        ㄴ 깃을 한번도 안써보고 한번 써보고싶다는 지인, 또 포트폴리오 개발을 하고싶어하는 지인들, 그리고 넷플릭스를 돈을 주고 쓰고있는 저 등등 각자의 의견이 모인 팀프로젝트를 시작했다.

           맨 처음 깃을 통하여 작업을 해보려고 했지만 어쩌다 보니 흐지부지 되버려서 아쉬운 프로젝트 중 하나이다. 각자 학생, 직장인으로써 최선을 다하느라 시간이 부족한 탓에 스터디 및 작업에 대한

           진행이 많이 느려서 그런거 같다. 일단 backend는 node.js로 하고 디자인 시안도 나왔지만 publishing 산출물, backend산출물이 아직 없는 상태이다. 물론 git은 존재하지만...

           이번 방학때 kotlin, publishing, 정보처리기사를 공부 할 예정이였다. 이 프로젝트의 의도, 나의 필요성이 있는 프로젝트여서 나중에 차차 node.js를 공부하여 backend를 개발 할 예정이다.

        

    ㄴ 아쉬움이 많은 플젝. 조만간 시도할 예정!

'회고록' 카테고리의 다른 글

2023- 개발자로써  (1) 2024.01.01
2022- 개발자로써  (2) 2022.12.19
2021- 개발자로써  (1) 2021.12.11
2020- 개발자로써  (0) 2020.12.20
2019- 학부 졸업예정(?) 개발자로써  (0) 2019.12.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함