본문 바로가기

전체 글266

[20220204] 리팩토링 마무리와 새로운 프로젝트 돌입 어제 ajax로 새로 코드를 짜려고 했던 것은 일단 기존의 코드를 활용하기로하고 좀 더 코드가 깔끔해지고 나면 시도해보기로 했다. 새로운 웹사이트 프로젝트에 들어가면서 코드 리팩토링에 시간을 뺏길 수는 없을 것 같았기 때문이다. 아직 회사 내 cms를 완벽하게 숙지하지 않았고 이번 개발에 참여하면서 배워나가야 하기에 좀 더 중요한 일에 집중해야겠다고 생각했다. 전직자 분들이 많들어 놓으신 cms는 어제의 스파게티 코드에 비하면 네이밍 컨벤션도 잘 지켜져 있고 주석이나 자바독이 그나마 많이 달려 있어서 이해하는 데 도움이 되고 있다. 다만, 모든 메서드와 변수에 주석이 달려있는 것은 아니라서 코드를 보면서 이해해나가는 중이다. 어떻게 하면 코드를 책 읽는 것처럼 자연스럽게 이해할 수 있을까하는 고민에 빠진.. 2022. 2. 4.
Git 명령어만 정리 이 글은 깃에 대한 이해는 조금 제쳐두고 Git을 사용하기 위한 명령어들 위주로 정리해보려고 한다. Git의 의의, 역사, 작동 원리, 고급 사용법에 대해서는 Git 공식 웹사이트(https://git-scm.com/)에서도 제공하는 스캇 샤콘(Scott Chacon)과 벤 스트라웁(Ben Straub) 著의 "Pro Git" 2nd Edition (2014) (https://git-scm.com/book/ko/v2)을 읽어보기를 바란다. 무료인 데다가, 한국어로 제공되고, 거기에 Git 공식 웹사이트가 제공하고 있으니 믿고 배울 수 있는 자료이다. Git 전역 변수 설정 - 사용자 이름과 이메일 git config --global user.name git config --global user.email.. 2022. 2. 3.
[20220203] 자바스크립트 스파게티 코드(?) 개선하기 개발자로 취직한 뒤 두 번째 유지보수 건이 들어왔다. 이 프로젝트는 스프링 부트로 구성되었지만, 생각보다 코드가 복잡하게 얽혀있었다. 아직 경험이 부족해 이것도 스파게티 코드라고 해야 할지는 모르겠는데, 왜 이렇게 짰는지 모를 부분이 꽤 있었다. 첫 번째로, 자바 코드의 Controller에서 DTO를 생성하고 DTO의 모든 변수들을 getter로 뽑아 변수를 만들어 놓았다. (왜죠?) DTO의 변수명이 마음에 안 들었던 걸까? 애초에 DTO의 목적 자체가 데이터베이스의 Row를 한 번의 쿼리로 가져와서 필요한 부분에 쓰기 위함이 아닌가? 변수로 선언하고 각각의 변수를 하나씩 다른 DTO에 setter로 넣어주고 그걸 ModelMap 객체로 내보낸다. 게다가 if-else if-else 문으로 경우에 따.. 2022. 2. 3.
JCF(Java Collection Framework) 정리 List ArrayList - 배열을 개선한 것. 배열과 다르게 가변 크기. Random Access로 검색에 유리. 검색 시 O(1), 삽입, 삭제 시 배열 크기를 늘리고 요소들을 이동시켜야 하므로 O(n). 최대 인덱스 초과 시 배열 크기 50% 증가. LinkedList - 각 자료들이 앞 자료와 뒷 자료의 주소를 갖고 있어 Sequential Access. 삽입이나 삭제에 유리. 검색 시 O(1)~O(n). 삽입, 삭제 시 O(1). Vector - 동기화 지원. 한 번에 하나의 스레드만 접근. -> Thread-safe. 최대 인덱스 초과 시 배열 크기 100% 증가. Map HashMap - 키 값을 해시 테이블로 만들어서 인덱스로 사용. 순서 보장 X. LinkedHashMap - HashM.. 2021. 12. 28.
728x90