프로그래밍/해외인턴 개발일지

[인턴 일지] 내 프로젝트의 문제점과 나아가야할 방향

Jay Tech 2017. 11. 4. 01:04
반응형

프로젝트를 하면서 드는 생각들...


제일 무서운 생각은 무너지진 않을까... 점점 건물이 높아짐에 따라 가끔씩 휘청거린다. 그럴 때마다 매우 조심스럽게 행동한다.


당연히 기본 뼈대가 튼튼해야 건물이 견고해진다. 이 사실을 인지함에도 뭔가 급한 마음에 막 빨리 쌓으려고 했다. 한 눈에 보이지 않는 코드... 정리가 되어 있지 않은 문맥들...


그래 쌓을 수는 있다. 하지만 수리할 때 문제가 생긴다. 어떤 기능이 어디에 있고 어느 부분을 고쳐야 하는지 바로 보이지가 않는다. 어제의 나와 오늘의 나는 다른 사람인 것을 예전부터 알고 있었다. 어제 분명히 어떤 feel을 받아서 정신없이 코드를 치고 돌아가는 것을 확인했다. 다음날 내가 와서 보면 그건 전혀 내가 한것처럼 느껴지지 않는다. 


Structure가 중요하다. 백날 책보면서 변수정리, clean한 코드 보면 뭐하나. 실제 할땐 그렇게 안하면서... 예전보단 나아졌지만 그래도 실천 하도록 꼭 노력해야 겠다.



학교 연구실에도 도움을 많이 줬던 형이 있다. 지금은 판교에서 일을 하는데 잘 한다... 한 번 형 회사에서 단기 땜빵으로 안드로이드를 한 적이 있는데 그 때 형한테 많이 배웠다. 내가 소화를 다 못한것도 있지만 그래도 많은 것을 알았다. 지금 프로젝트하는 것도 형 한테 조언을 많이 구하고 있다.


얼마 전 형한테 잘되냐고 연락이 와서 내가 잘 모르겠다고 했다. 코드좀 보자고 해서 몇 군데를 보여드렸다. 창피하긴 해도 어차피 예전부터 형이 내가 짜는 코드 봐서 그렇게 까지 창피하진 않았다. 


누군가 그랬다. 자기 코드를 남들 앞에서 공개하는 게 실제로 옷을 벗고 사람들 앞에 서 있는 느낌이라고...


진짜 그 정도로 창피하다. 내 코드를 보고 형이 적지 않게 충격을 받아서 이런저런 이야기를 많이 했다. 카톡으로... 난 시간대가 아침 사무실이고 형은 밤에 잘 시간 이었지만 많은 걸 알려주었다.


일단 파일 다루는 것에 대해 들었다. 


저렇게 멀티파트로 받을 때 배열로 받으라고 했었다. 난 저렇게 하면 파일 하나만 선택할 수 있었다. 그리고 파일 보안을위해 CannedAccessControlList를 쓰라고 하였다.

그리고 파일 다룰 때 주로 FormData라는 자바스크립트 객체를 쓴다고 하였다.


그리고 정리가 중요한데 난 정리가 되어 있지 않았다.



급한 마음에 엉망이 되어 버린 코드이다. 서비스 임플에서 이미지를 업로드하는 부분이다. 한눈에 뭐가 뭐하는지 보이지가 않는다...

형은 파일을 처리하는 부분을 Util로 빼서 따로 만들라고 했다. 그리고 함수이름을 길게 만든다고 했다. 작명에 있어서 나도 매우 동의했다. 형의 함수이름은 생각보다 매우 길었다. 하지만 긴 만큼 기능을 바로 파악할 수가 있었다.





형의 AWS관련 Util 인터페이스 였다. 이름이 진짜 거의 영어 독해 문장 이었다. 하지만 바로 이해가 되는 함수이름 이었다.

그리고 주석 또한 깔끔하게 잘 되어 있었다.


나중에 서비스만 보고 유지보수해야 된다고 정리하는 습관이 중요하다고 하였다.






이런 service파일보다가 내꺼 보니까 진짜 ..... 한숨만 나왔다.




그리고 직원 관리에 있어서 Status관리를 좀 더 넓혔어야 했다.




지금 보면 나는 직원의 일하는 유무 를 WORK_YN으로 Y,N 두 가지의 초이스를 생각하고 있었다. 예전에 유명한 DBA강의를 들으러 갔을 때 실무에서는 delete 가 거의 일어나지 않는다고 했었다. 왜냐하면 퇴사를 해도 그 사람의 정보를 가지고 있어야하는 이유가 있기 때문이었다. 재입사 구분 또는 전적을 확인해야 하기 때문이다. 그래서 그냥 필드하나를 두고 구분한다고 했었다. 


형의 조언은 문자로 하다가 인코딩이 터질수가 있고 확장성에 있어서 Int(1)로 하는게 좋다고 하였다. 0은 퇴사 1은 입사 2는 병가 등등 유연하게 상태를 관리하는게 낫다고 하였다. 


나도 Position (Sales, Warehouse 등등) Location (각 매장들) 을 확장성을 고려해서 숫자로 들어가게 했었는데 이것 까지 생각하지 못했다.


인턴이 이렇게 DB관리하는게 진짜 웃긴 일이지만... 내가 사장님이면 회사 직원 데이터베이스는 인턴시키는 건 당연히 말도안되고 경력이 오래되고 정말 숙력된 DBA를 쓸 것같다. 


그리고 제일 좋은 선생님은 Github라고 했다. 내가 하려는 분야에 오픈소스를 많이 올리는 사람의 최신 프로젝트 3개정도를 열어서 어떻게 짰나 분석하고 내 것과 비교하라고 하였다. 세계 최고의 개발자들의 코드를 보면서 리뷰 하는게 중요하다고 했다. 나도 정말 그렇게 생각한다. 프로젝트를 하면서 깃 허브의 유명한 프로젝트를 열어서 분석도 해보아야 겠다.


오늘도 부족한 나를 위해 공부해야 겠다.


자바는 좁게 ... 디비는 넓게... 





반응형