본문 바로가기

전체 글268

[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.
자바 접근 제한자(Access Modifier) 총정리 Class의 접근 제한자는 public, (default)만 가능하다. 즉, 다른 패키지에서 생성이 가능하거나 같은 클래스 내에서만 생성 가능하다.(protected, private는 사용 불가능) 변수와 메서드의 접근 제한자는 public, protected, (default), private가 사용 가능하다. public는 다른 패키지에서도 객체 생성 가능. (default)는 같은 패키지 내에서 객체 생성 가능. private은 같은 클래스 내에서만 객체 생성 가능. protected는 같은 패키지 내에서, 그리고 다른 패키지라도 상속할 경우 객체 생성 가능. ※ protected 사용 시 주의 사항 package A; public class SuperClass { protected String f.. 2021. 12. 28.
DNS(Domain Name Server) 파라미터 아래 사이트는 DNS(Domain Name Server) 관련 파라미터를 모아놓은 IANA의 목록 사이트이다. 도메인 연결을 하면서 알아야 할 DNS 레코드 타입(정식 명칭은 Resources Records type, 줄여서 RR 타입)도 나와 있고, 도메인 응답 코드(Response Code)에 대한 목록도 있다. http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml Domain Name System (DNS) Parameters 4 0x0004 Hesiod (HS) [Dyer, S., and F. Hsu, "Hesiod", Project Athena Technical Plan - Name Service, April 1987.] www.. 2021. 12. 25.
728x90