5장 - 형식 맞추기 코드 형식은 매우 중요하다! 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 신문 기사처럼 작성하라. 이름은 간단하면서도 설명이 가능하게 짓는다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 명백하게 짧은 행이 가독성이 좋다. 들여쓰기를 중요시 여겨야한다. 7장 - 오류 처리 오류 코드보다 예외를 사용해라. public class DeviceController{ ... public void sednShutDown(){ DeviceHandle handle = getHandle(DEV1); // 디바이스 상태를 점검한다. if (handle != DeviceHandle.INVALID){ // 레코드 필드에 디바이스 상태를 저장한다. retrieveDeviceRecord(h..
1 장 - 깨끗한 코드 출시에 바빠 코드를 마구 짜고 기능을 추가할수록 코드는 엉망이 되어가고, 결국엔 감당이 불가능한 수준에 이른다. 결국엔 대가를 치른다.(최악의 상황일 경우 서비스 종료 등) 나쁜 코드가 쌓일수록 팀 생산성은 0이된다. 기억해라. 생각날 때 바로 나쁜 코드를 리팩토링하자. 나중에는 오지 않는다. 빨리 가는 유일한 방법은, 언제나 코드를 깨끗하게 유지하는 습관이다. 깨끗한 코드란? 보기에 즐거운 코드, 세세한 사항(오류 등)까지 꼼꼼하게 처리하는 코드 단순하고 직접적이다.깨끗한 코드는 결코 설계자의 의도를 숨기지 않는다. 명쾌한 추상화와 단순한 제어문으로 가득하다. 다른 사람이 고치기 쉽다. 테스트 하기 좋은 코드, 테스트케이스가 없으면 깨끗하지 않다. 중복 줄이기, 한 메소드가 한 ..
문득 든 생각 개발을 한 지 어느덧 2년 정도가 흘렀다. 짧으면 짧고 길면 긴 2년이지만 에이전시부터 시작해서 커머스 스타트업에 이직하면서 많이 배우고 많은 좋은 사람들을 만났다. 문득 2년동안 개발자로 일하면서 성장에 대한 나의 생각과 개발에 대한 나의 생각이 어떻게 변했는지 정리하고 싶어서 이 글을 쓰게 되었다. 에이전시에서의 개발자 2021년 8월 말에 입사해서 2022년 3월에 퇴사했다. 비전공자로서 부트캠프를 수료하고 취업 준비를 할 때 중견기업/스타트업/중소기업 등 가리지 않고 많은 곳을 넣었다. 그 당시만 해도 신입도 서류 합격이 잘되던 시기라 여러기업들의 서류 합격을 하여 면접을 보게 되었다. 그중에 붙은 곳 중에 2군데를 고민하게 되었다. 한 군데는 집과 가까우며 내가 당시 하고싶었던 기..
Index 란? 데이터베이스 쿼리의 성능을 언급하기위해 빼놓을 수 없는 부분이다. 책의 마지막에 있는 "찾아보기"가 인덱스에 비유된다면 책의 내용은 데이터 파일이라고 볼 수 있다. 책의 "찾아보기" 와 DBMS 인덱스의 공통점 가운데 중요한 것은 정렬이다. 책의 찾아보기도 내용이 많아지면 원하는 검색어를 찾아내는데 시간이 걸린다. 그래서 최대한 빨리 찾을 수 있게 "ㄱ", "ㄴ" , "ㄷ" ..과 같은 순서로 정렬되어 있다. DBMS의 인덱스도 마찬가지로 컬럼의 값을 주어진 순서로 미리 정렬해서 보관한다. 인덱스는 데이터베이스 테이블의 검색 성능을 향상시켜주도록 도와주는 자료구조이다. SortedList는 DBMS의 인덱스와 같은 자료 구조이다. 데이터가 저장될 때마다 항상 값을 정렬함으로 저장하는 과정..
개요 간단하게 채용에 관련된 도메인을 설계를 했다. 보통 채용 공고를 작성할 때 경력직의 년차를 설정한다. 하지만 해당값을 Enum으로 관리하고 싶다. Enum값으로 관리하려는 이유는 여러가지가 있다. 해당 필드값을 사용할 때 컴파일러가 Enum값 타입을 검사해줘서 코드의 대한 안정성이 높아진다. 유지보수하기가 쉬워진다. 공통으로 사용하는 Enum은 수정사항이 있을 경우 그 부분만 수정하면된다. 가독성이 좋아진다. 상수값으로 되어있어서 보기가 편하다. 보통은 Enum값이 String으로 하나인경우 @Enumerated(EnumType.STRING) 을 사용하면 된다. 하지만 나의 경우에는 경력직의 년차의 Enum값 같은 경우에는 년도를 나타내는 Year이라는 int값과 해당 데이터를 텍스트로 나타내는 S..