클린코드(CleanCode)를 읽고 간략하게 정리한 글입니다. 4장. 주석 나쁜 코드에 주석을 달지 마라. 새로 짜라 - 브라이언 W. 커니헨, P.J. 플라우거 - 잘 달린 주석은 유용하지만, 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다. - 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨린다. - 코드 자체가 표현력이 풍부하다면 주석은 필요하지 않다. - 즉, 우리는 코드로 의도를 표현하지 못해 실패를 만회하기 위해 주석을 사용하는 것이다. - 주석은 오래될수록 코드에서 멀어진다. 오래될수록 완전히 그릇될 가능성도 있다. - 프로그래머들이 주석을 유지 보수하긴 현실적으로 불가능하다. - 주석을 엄격하게 관리하느니, 코드를 깔끔하게 정리하고 표현력을 강화하는 방향으로 사용해야 한다. 1...
클린코드(CleanCode)를 읽고 간략하게 정리한 글입니다. 3장. 함수 1. 작게 만들어라 - 함수를 만드는 첫째 규칙은 "작게" 이고, 둘째 규칙은 "더 작게" 이다. - 함수가 작을수록 좋다는 증거나 자료를 제시하기는 쉽진 않지만, 짧을수록 각 함수가 명백하고 하나의 동작을 한다는 것은 확실하다. 나쁜 예시 public void lotto() { int[] lottoNumbers = new int[6]; Random random = new Random(); // 랜덤번호 생성 for (int i = 0; i < lottoNumbers.length; i++) { lottoNumbers[i] = random.nextInt(45) + 1; // 중복번호 제거 for(int j = 0; j < i; j+..
클린코드(CleanCode)를 읽고 간략하게 정리한 글입니다. 2장. 의미 있는 이름 - 소프트웨어에서 이름은 어디에서나 사용된다. 이름을 잘 지은다면 여러모로 편하다. 1. 의도를 분명히 밝혀라 - 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. - 이름을 주의 깊게 살펴 더 나은 이름으로 개선한다면 코드를 읽는 사람은 조금 더 편하다. - 변수, 함수, 클래스 이름은 다음과 같은 질문에 모두 답해야 한다. 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. 1-1. 변수 나쁜 예시 int a; // 사람 수(단위 : 명) - 위 변수를 살펴보면 실제 의도는 사람 수를 표현하지만 a 라는 변수를 보면 아무 의미도..
클린코드(CleanCode)를 읽고 간략하게 정리한 글입니다. 1장. 깨끗한 코드 - 클린 코드의 책의 목표는 아래와 같다. 좋은 코드와 나쁜 코드를 구분하는 능력을 갖춘다. 좋은 코드를 작성하는 방법을 익힌다. 나쁜 코드를 좋은 코드로 바꾸는 실력을 만든다. 1. 코드가 존재하리라 - 코드는 요구사항을 상세히 표현하는 수단이다. - 기계가 실행할 정도로 상세하게 요구사항을 명시하는 직업, 이것이 프로그래밍이다. - 프로그래밍 언어에서 추상화 수준은 점차 높아지겠지만, 코드가 사라지진 않을 것이다. - 고도로 추상화된 언어나 특정 응용 분야 언어로 기술하는 명세 역시 코드이다. 2. 나쁜 코드 - 우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고(리팩토링) 생각한 경험이 있다. - 어떠한 ..
해당 글은 인프런에서의 실무에서 전하는 따끈한 마이크로서비스 아키텍처(MSA) 이야기 강의를 보고 간략하게나마 정리한 글입니다. 실무에서 전하는 따끈한 마이크로서비스 아키텍처(MSA) 이야기 - 인프런 | 강의 클라우드 분야에서 가장 Hot한 키워드인 Microservice Architecture (MSA)의 전반적인 배경, 다양한 아키텍처 패턴,애플리케이션 유형 , 레거시 전환방법 등을 현장의 목소리로 전달합니다., 클라우드 인 www.inflearn.com 1. 아키텍처 1-1. 아키텍처란? - 목표하는 대상에 대하여 구 구성고 동작 원리, 구성 요소 간의 관계 및 시스템 외부 환경과의 관계 등을 설명하는 설계도 - 아키텍처 특성 가용성, 신뢰성, 시험성, 확장성, 보안, 민첩성, 내고장성, 탄력성,..
해당 글은 인프런에서의 실무에서 전하는 따끈한 마이크로서비스 아키텍처(MSA) 이야기 강의를 보고 간략하게나마 정리한 글입니다. 실무에서 전하는 따끈한 마이크로서비스 아키텍처(MSA) 이야기 - 인프런 | 강의 클라우드 분야에서 가장 Hot한 키워드인 Microservice Architecture (MSA)의 전반적인 배경, 다양한 아키텍처 패턴,애플리케이션 유형 , 레거시 전환방법 등을 현장의 목소리로 전달합니다., 클라우드 인 www.inflearn.com 1. 마이크로서비스의 정의 1-1. 모노리스 시스템 - 애플리케이션이 한 덩어리(서버)로 구성. - 단일 프로세스 실행. - 전체 수정, 배포가 되어야 함.(간단한 수정 1건 이어도, 전체 테스트가 필요하고 배포가 이루어져야 함.) - 하나가 실패..
- 해당 내용은 백기선 님의 자바 온라인 스터디 공부 및 제출 목적 -> https://github.com/whiteship/live-study/issues/9 9주차 과제: 예외 처리 · Issue #9 · whiteship/live-study 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 github.com 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층..
- 해당 내용은 백기선 님의 자바 온라인 스터디 공부 및 제출 목적 -> https://github.com/whiteship/live-study/issues/8 8주자 과제: 인터페이스 · Issue #8 · whiteship/live-study 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터 github.com 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 st..
- 해당 내용은 백기선 님의 자바 온라인 스터디 공부 및 제출 목적 -> https://github.com/whiteship/live-study/issues/7 7주차 과제: 패키지 · Issue #7 · whiteship/live-study 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 마감일시 2021년 1월 2일 토요일 오후 1시까지. github.com 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 1. package 키워드 1.1 Package ..
- 해당 내용은 백기선 님의 자바 온라인 스터디 공부 및 제출 목적 -> https://github.com/whiteship/live-study/issues/6 6주차 과제: 상속 · Issue #6 · whiteship/live-study 목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 마 github.com 목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 O..