모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 게시물ID : programmer_15742
    작성자 : 배고파죽겟삼
    추천 : 3
    조회수 : 827
    IP : 218.221.***.41
    댓글 : 5개
    등록시간 : 2016/02/06 18:24:21
    http://todayhumor.com/?programmer_15742 모바일
    2년전의 저를 만나고 왔습니다. (리팩토링 일지)

    대학생때 단어장 어플리케이션을 하나 만든게 있었어요.
    안드로이드도 모르고 자바도 몰랐었었는데.. 오로지 구글 검색만으로 개발했었죠.
    단어장 하나 만드는데 학교 도서관에서 거의 살다시피해서 만들었던 기억이...
    그때 졸업시즌이였는데 지지리도 프로그래밍도 못하고 내가 이걸로 취직해서 밥먹고 살 수 있을까? 라고 진짜 엄청 고민했었어요.
    (아마 이런 고민하는분들 많을거라고 생각함..ㅠ)

    어찌어찌 어플리케이션은 완성했습니다.
    이게 제 졸업작품이였어요.
    어떤 어플리케이션인가는 궁금하신분은 예전에 올렸던 글을 봐주세요.

    오유분들이 굉장히 많이 다운받아주셔서 엄청 성취감을 느꼈었어요.
    아 이래서 개발하는구나, 나도 하면 되는구나 등등 자신감이 좀 붙었었죠.. (완성한 어플은 처참했지만)
    그렇게 저는 졸업을했고, 여기저기 중소기업에 이력서를 넣어서 SI회사에 취직을 했습니다.
    첫회사에서 겁나 고생했어요. 진심 ... 편도 두시간인곳으로 지하철 두번 버스 한번 갈아타서 파견을 나가기도 했고요.
    그곳에서는 8시30분까지 출근하고 퇴근은 막차끊기기전에 퇴근하는게 일상이였습니다.

    저는 IT는 다 이런줄 알았어요. 신입은 다 2000도 안되는 돈 받고 일하는거고 야근하면서 배우는거구나~
    1년일하고 우연히 이력서 넣은 지금회사에 이직이되서 지금은 그렇지 않다는걸 알고있지만요....
    잡설이 길었네요. 지금부터 리팩토링 일기를 작성해볼까 합니다.

    리팩토링을 결심한건 우연히 제 개발자 페이지를 들어갔는데 아직도 제 단어장을 사용하고 계신데 불편한점이 몇가지 있다.
    라고 적혀있는 리뷰를 본날부터 시작했습니다. 2년이 지났는데 아직도 쓰시는분이 있구나. 하고 놀랐고.
    제 어플리케이션에 버그가 한두개가 아닌걸 확인하고나니 그래도 현직 안드로이드 개발잔데 이건 아니지.. 하면서 고치기로 했습니다.

    이전 제 어플리케이션에 상태에 대해서 조금 설명해드리고자 합니다.
    1. 모든 클래스들이 하나에 패키지에 다 모여있음
    2. 프라그먼트 그게 뭐죠? 모든 비지니스 로직은 액티비티에 있다.
    3. sqlite를 사용하였는데, 커서나 데이터베이스를 각각의 액티비티에서 마구잡이로 사용하고 있었음. (심지어 쓰고 close도 안함)
    4. 코드들이 포맷팅이 하나도 안되있음. 줄내림 이건 괄호 위치건 코드컨벤션이 뭐죠?
    5. 엄청난 네이밍센스 이름짓기가 귀찮았었는지.. 예) word1, word2, word3 WordListActivity1 WordListActivty2
    6. 굉장한 커스텀 탭바를 직접 만들어서 사용하고 있었음. 각각 액티비티에 이미지들을 넣어서 클릭리스너로 구현함 (이게 다섯개에 액티비티에 각각 들어있음;;)
     - 심지어 롤리팝에선 탭바가 나오지도않아서 아무것도 안됫음...

    리팩토링 순서
    1. 패키지 정리
    그땐 접근제어자에 대한 개념도 없었었나 봅니다.
    디폴트 접근제어자로 선언되어있어서 패키지를 분리하는순간 엄청나게 빨간줄이 발생했습니다.
    그리고 멤버변수는 무조건 static이 붙어있더군요. ㅋㅋㅋ 클래스는 달라도 우리는 하나! 

    2. 데이터베이스 정리
    0.db 1.db ... 50.db 이런식으로 디비가 들어있더군요. 
    이건 수정하려고하다가 도저히 하나하나 열어서 고칠 자신이 없어서 그냥 둿습니다...

    3. 앱내 디비의 경우 dbManager라는놈을 싱글톤으로 만들어서 요청 -> 쿼리 -> 오브젝트 반환으로 정리했습니다.
    렐름을 쓰면 깔끔해질거 같은데 그렇게 하려고보니 그냥 앱을 새로 만드는게 빠르겠더군요.

    4. 화면단을 프라그먼트로 나누고 메인 화면에 엄청난 커스텀 탭바를 제거하고 메인페이지에는 뷰페이저를 넣었습니다.

    5. 정체불명의 변수명들을 정리하고 머터리얼 디자인을 적용하고 개발 편의성을 위해서 몇가지 라이브러리를 집어넣었습니다.
    butterknife, lombok, timber, gson, otto등
    otto는 이제 지원이 중단되었더군요.. rxandroid의 시대가 오려나봅니다.

    대략 리팩토링에 걸린시간은 주말 4일정도 하루 6시간정도했네요.
    안드로이드의 안자도 모르던놈이 많이 발전한거 같아서 뿌듯합니다.
    그리고 모든 취업준비를 하고있는 대학생분들 힘내세요.
    개인적으로 중견기업이상을 목표로 하시는게 좋지않을까 라는 생각이듭니다. 

    면접준비는 오유 프로그래밍 게시판에서 가끔 면접때 뭐물어보나요? 라고 글올리면 능력자분들이 이정돈 알아야 뽑아서 쓰지!
    라고 댓글해주시는경우가 있었는데 저는 그거 보고 공부했더니 진심 면접가니까 비슷한 내용들이 많아서 덕분에 지금회사 잘 다니고 있습니다...-_-;;
    참고로 그때 제가 봤던글 중에 아직도 기억에 남는 링크 : http://www.todayhumor.co.kr/board/view.php?table=programmer&no=6924
    여기서 빈둥님이 적으신 댓글정도만 공부해도...!!

    이상입니다. 모니터산 기념으로 열심히 코딩해서 뿌듯합니다.
    낼부턴 아예 쌔로 어플하나 만들어보려고 하네요. (깨끗하게 좀 짜봐야지..)
    - 끗 -


    이 게시물을 추천한 분들의 목록입니다.
    [1] 2016/02/06 18:39:01  1.228.***.205  칫,결계인가  591397
    [2] 2016/02/06 19:24:37  182.250.***.232  가을은추워염  506268
    [3] 2016/02/08 00:26:43  1.242.***.5  카르토  421820
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    23438
    아후 서터레스 NeoGenius 24/04/02 17:52 532 1
    23436
    로또 [3] 까망사투리 24/03/11 15:53 1018 4
    23434
    copilot 기업유료버전 intelliJ에 붙여서 쓰고있는데 지리네요 안녕월드 24/02/22 00:15 1049 0
    23433
    코딩마을 대나무숲 [5] cocoa 24/02/20 14:50 1181 5
    23432
    (질문) 프로그래머분들은 싱글PC게임 레벨제한 풀수 있죠?? [22] 본인삭제금지 할배궁디Lv2 24/02/13 13:36 1244 1
    23431
    Freemium NeoGenius 24/02/13 13:23 839 0
    23429
    부산에서 프로그래머 구인하는데 연봉 6천에서 8천 작은건가 [3] 폴팡 24/02/04 20:50 1438 1
    23427
    chatgpt? bard? [4] 별빛러브 24/01/25 06:24 951 0
    23426
    Next.js로 만들어봤어요~ [3] 창작글 sonnim 24/01/24 12:52 1120 3
    23425
    Spring Boot 공부하기 - 한국투자증권 오픈API 호출 옐로우황 24/01/21 17:51 1033 1
    23424
    파이썬 코딩 관련해서 질문드립니다. [4] 투투나 24/01/08 09:49 1249 0
    23423
    9년차 개발자의 "나만의 챗봇" 만들기 with ChatGPT [2] 아자뵤옹 23/12/10 22:35 1445 4
    23420
    이 에러가 뭘까요? [2] +.푸른바다.+ 23/11/03 15:25 1595 1
    23419
    [유니티 코리아] MWU 2023 투표하고 푸짐한 경품 받아가세요! engine1 23/10/06 18:52 1203 0
    23418
    Flutter로 만든 채팅 어플리케이션 with ChatGPT 아자뵤옹 23/09/13 22:39 1696 0
    23417
    특정 페이지 직접 접근 어떻게 막으시나요? [9] 달콤아시타 23/09/10 09:36 1733 0
    23416
    버츄얼 유튜버가 완성한 '세계 최초' 애플 실리콘 GPU 드라이버 펌글 우가가 23/09/02 23:52 1848 2
    23415
    뜨끈뜨끈한 30분짜리 삽질 [9] 창작글 상사꽃 23/08/29 16:00 2114 1
    23414
    [유니티 코리아] MWU 코리아 어워드 2023 마감 임박! mwuaward2023 23/08/26 14:01 1308 0
    23413
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/08/13 19:52 1341 0
    23412
    React.js 공부하기 - REST API 호출(CRUD) 옐로우황 23/08/05 13:13 1566 0
    23411
    영어앱을 만들었는데, 사용자들의 의견 받고 싶습니다! [2] 맑은바다13 23/08/03 18:28 1535 2
    23410
    진짜 절박해서 정말 ㅠㅠ 첫끼간절해서 도움주실분ㅠ.. [3] 명금123 23/07/17 22:28 1631 0
    23409
    [유니티 코리아] MWU 코리아 어워드 2023 mwuaward2023 23/07/04 16:49 1442 0
    23407
    라즈베리파이 파이썬코드에 while문 썼는데 동작을 안해요 [3] 싱그러운햇살 23/06/17 17:18 1728 1
    23405
    라즈베리파이, 스위치 하나 누르면 다른 스위치들도 반응해요 [3] 싱그러운햇살 23/06/15 22:39 1765 1
    23403
    혹시.. 중소기업 재취업 목표.. 공부방법 및 툴 버전 질문드려도 될까요 [2] 베스트금지베오베금지외부펌금지 웃대메템 23/06/13 01:46 1818 0
    23402
    재취업 힘들까요???? [5] 베스트금지베오베금지외부펌금지 웃대메템 23/06/11 00:46 2147 2
    23401
    취미로 만든 채팅 with ChatGpt [4] 아자뵤옹 23/05/11 20:10 2167 4
    23400
    Spring Boot 공부하며 예제 CRUD 웹애플리케이션 정리 옐로우황 23/05/06 11:26 1840 2
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈