<div><br></div> <div>대학생때 단어장 어플리케이션을 하나 만든게 있었어요.</div> <div>안드로이드도 모르고 자바도 몰랐었었는데.. 오로지 구글 검색만으로 개발했었죠.</div> <div>단어장 하나 만드는데 학교 도서관에서 거의 살다시피해서 만들었던 기억이...</div> <div>그때 졸업시즌이였는데 지지리도 프로그래밍도 못하고 내가 이걸로 취직해서 밥먹고 살 수 있을까? 라고 진짜 엄청 고민했었어요.</div> <div>(아마 이런 고민하는분들 많을거라고 생각함..ㅠ)</div> <div><br></div> <div>어찌어찌 어플리케이션은 완성했습니다.</div> <div>이게 제 졸업작품이였어요.</div> <div>어떤 어플리케이션인가는 궁금하신분은 예전에 올렸던 글을 봐주세요.</div> <div>링크 :<a target="_blank" href="http://www.todayhumor.co.kr/board/view.php?table=humorbest&no=796052&s_no=796052&kind=member&page=1&member_kind=humorbest&mn=37254">http://www.todayhumor.co.kr/board/view.php?table=humorbest&no=796052&s_no=796052&kind=member&page=1&member_kind=humorbest&mn=37254</a></div> <div><br></div> <div>오유분들이 굉장히 많이 다운받아주셔서 엄청 성취감을 느꼈었어요.</div> <div>아 이래서 개발하는구나, 나도 하면 되는구나 등등 자신감이 좀 붙었었죠.. <span style="font-size:9pt;line-height:1.5;">(완성한 어플은 처참했지만)</span></div> <div><span style="font-size:9pt;line-height:1.5;">그렇게 저는 졸업을했고, 여기저기 중소기업에 이력서를 넣어서 SI회사에 취직을 했습니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;">첫출근 링크 : </span><a target="_blank" href="http://www.todayhumor.co.kr/board/view.php?table=programmer&no=972&s_no=7329348&kind=member&page=1&member_kind=total&mn=37254">http://www.todayhumor.co.kr/board/view.php?table=programmer&no=972&s_no=7329348&kind=member&page=1&member_kind=total&mn=37254</a></div> <div>첫회사에서 겁나 고생했어요. 진심 ... 편도 두시간인곳으로 지하철 두번 버스 한번 갈아타서 파견을 나가기도 했고요.</div> <div>그곳에서는 8시30분까지 출근하고 퇴근은 막차끊기기전에 퇴근하는게 일상이였습니다.</div> <div><br></div> <div>저는 IT는 다 이런줄 알았어요. 신입은 다 2000도 안되는 돈 받고 일하는거고 야근하면서 배우는거구나~</div> <div>1년일하고 우연히 이력서 넣은 지금회사에 이직이되서 지금은 그렇지 않다는걸 알고있지만요....</div> <div>잡설이 길었네요. 지금부터 리팩토링 일기를 작성해볼까 합니다.</div> <div><br></div> <div>리팩토링을 결심한건 우연히 제 개발자 페이지를 들어갔는데 아직도 제 단어장을 사용하고 계신데 불편한점이 몇가지 있다.</div> <div>라고 적혀있는 리뷰를 본날부터 시작했습니다. 2년이 지났는데 아직도 쓰시는분이 있구나. 하고 놀랐고.</div> <div>제 어플리케이션에 버그가 한두개가 아닌걸 확인하고나니 그래도 현직 안드로이드 개발잔데 이건 아니지.. 하면서 고치기로 했습니다.</div> <div><br></div> <div>이전 제 어플리케이션에 상태에 대해서 조금 설명해드리고자 합니다.</div> <div>1. 모든 클래스들이 하나에 패키지에 다 모여있음</div> <div>2. 프라그먼트 그게 뭐죠? 모든 비지니스 로직은 액티비티에 있다.</div> <div>3. sqlite를 사용하였는데, 커서나 데이터베이스를 각각의 액티비티에서 마구잡이로 사용하고 있었음. (심지어 쓰고 close도 안함)</div> <div>4. 코드들이 포맷팅이 하나도 안되있음. 줄내림 이건 괄호 위치건 코드컨벤션이 뭐죠?</div> <div>5. 엄청난 네이밍센스 이름짓기가 귀찮았었는지.. 예) word1, word2, word3 WordListActivity1 WordListActivty2</div> <div>6. 굉장한 커스텀 탭바를 직접 만들어서 사용하고 있었음. 각각 액티비티에 이미지들을 넣어서 클릭리스너로 구현함 (이게 다섯개에 액티비티에 각각 들어있음;;)</div> <div> - 심지어 롤리팝에선 탭바가 나오지도않아서 아무것도 안됫음...</div> <div><br></div> <div>리팩토링 순서</div> <div>1. 패키지 정리</div> <div>그땐 접근제어자에 대한 개념도 없었었나 봅니다.</div> <div>디폴트 접근제어자로 선언되어있어서 패키지를 분리하는순간 엄청나게 빨간줄이 발생했습니다.</div> <div>그리고 멤버변수는 무조건 static이 붙어있더군요. ㅋㅋㅋ 클래스는 달라도 우리는 하나! </div> <div><br></div> <div>2. 데이터베이스 정리</div> <div>0.db 1.db ... 50.db 이런식으로 디비가 들어있더군요. </div> <div>이건 수정하려고하다가 도저히 하나하나 열어서 고칠 자신이 없어서 그냥 둿습니다...</div> <div><br></div> <div>3. 앱내 디비의 경우 dbManager라는놈을 싱글톤으로 만들어서 요청 -> 쿼리 -> 오브젝트 반환으로 정리했습니다.</div> <div>렐름을 쓰면 깔끔해질거 같은데 그렇게 하려고보니 그냥 앱을 새로 만드는게 빠르겠더군요.</div> <div><br></div> <div>4. 화면단을 프라그먼트로 나누고 메인 화면에 엄청난 커스텀 탭바를 제거하고 메인페이지에는 뷰페이저를 넣었습니다.</div> <div><br></div> <div>5. 정체불명의 변수명들을 정리하고 머터리얼 디자인을 적용하고 개발 편의성을 위해서 몇가지 라이브러리를 집어넣었습니다.</div> <div>butterknife, lombok, timber, gson, otto등</div> <div>otto는 이제 지원이 중단되었더군요.. rxandroid의 시대가 오려나봅니다.</div> <div><br></div> <div>대략 리팩토링에 걸린시간은 주말 4일정도 하루 6시간정도했네요.</div> <div>안드로이드의 안자도 모르던놈이 많이 발전한거 같아서 뿌듯합니다.</div> <div>그리고 모든 취업준비를 하고있는 대학생분들 힘내세요.</div> <div>개인적으로 중견기업이상을 목표로 하시는게 좋지않을까 라는 생각이듭니다. </div> <div><br></div> <div>면접준비는 오유 프로그래밍 게시판에서 가끔 면접때 뭐물어보나요? 라고 글올리면 능력자분들이 이정돈 알아야 뽑아서 쓰지!</div> <div>라고 댓글해주시는경우가 있었는데 저는 그거 보고 공부했더니 진심 면접가니까 비슷한 내용들이 많아서 덕분에 지금회사 잘 다니고 있습니다...-_-;;</div> <div>참고로 그때 제가 봤던글 중에 아직도 기억에 남는 링크 : <a target="_blank" href="http://www.todayhumor.co.kr/board/view.php?table=programmer&no=6924">http://www.todayhumor.co.kr/board/view.php?table=programmer&no=6924</a></div> <div>여기서 빈둥님이 적으신 댓글정도만 공부해도...!!</div> <div><br></div> <div>이상입니다. 모니터산 기념으로 열심히 코딩해서 뿌듯합니다.</div> <div>낼부턴 아예 쌔로 어플하나 만들어보려고 하네요. (깨끗하게 좀 짜봐야지..)</div> <div>- 끗 -</div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.