[클린코드 - http://www.yes24.com/Product/Goods/11681152] 오류 코드보다 예외를 사용하라 오류 코드를 사용하면 함수를 호출한 즉시 오류를 확인해야 하기 때문에 호출자 코드가 복잡해진다 오류가 발생하면 예외를 던지는 편이 논리가 오류 처리 코드와 뒤섞이지 않아 호출자 코드가 더 깔끔해진다 Try-Catch-Finally 문부터 작성하라 try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다 예외가 발생할 코드를 짤 때는 try-catch-finally 문으로 시작하는게 좋다 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다 자연스럽게 try 블록의 트랜잭션 범위부터 구현하게 되므로..
[Java의 정석 - http://www.yes24.com/Product/Goods/24259565] 1. 지네릭스(Generics) 1.1 지네릭스란? 지네릭스 : 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크(compile-time type check)를 해주는 기능 지네릭스의 장점 타입 안정성을 제공 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여줌 타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해진다 1.2 지네릭 클래스의 선언 타입 변수(type variable) : 임의의 참조형 타입을 의미 지네릭스의 용어 class Box {} Box : 지네릭 클래스 T..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 자료 추상화 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다 인터페이스나 조회/설정 함수만으로는 추상화가 이뤄지지 않는다 자료/객체 비대칭 객체 : 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다 자료 구조 : 자료를 그대로 공개하며 별다른 함수는 제공하지 않는다 객체 지향 코드에서 어려운 변경은 절차적인 코드에서 쉬우며, 절차적인 코드에서 어려운 변경은 객체 지향 코드에서 쉽다 (자료 구조를 사용하는) 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 프로그래머라면 규칙을 정해 형식을 깔끔하게 맞춰 코드를 짜야 한다 형식을 맞추는 목적 코드 형식은 의사소통의 일환이다 의사소통은 전문 개발자의 일차적인 의무다 적절한 행 길이를 유지하라 500줄을 넘지 않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다 신문 기사처럼 작성하라 이름은 간단하면서도 설명이 가능하게 짓는다 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다 아래로 내려갈수록 의도를 세세하게 묘사한다 마지막에는 가장 저차원 함수와 세부 내역이 나온다 개념은 빈 행으로 분리하라 각 행은 수식이나 절을 나타내고 이렬ㄴ의 행 묶음은 완..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 잘 달린 주석은 그 어떤 정보보다 유용하다 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨려 해악을 미친다 주석은 언제나 실패를 의미한다 코드로 의도를 표현하지 못해 실패를 만회하기 위해 주석을 사용함 주석은 거짓말을 한다 주석을 유지보수하기는 현실적으로 불가능이라 오래될수록 코드에서 멀어진다 주석보다 코드에 집중하여 주석이 필요 없는 방향으로 노력하는게 낫다 주석을 가능한 줄이도록 꾸준히 노력해야 한다 주석은 나쁜 코드를 보완하지 못한다 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가 복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다 코드로..
[Java의 정석 - http://www.yes24.com/Product/Goods/24259565] 1. 컬렉션 프레임웍(Collections Framework) 데이터 군을 저장하는 클래스들을 표준화한 설계 컬렉션 : 다수의 데이터, 데이터 그룹 프레임웍 : 표준화된 프로그래밍 방식 1.1 컬렉션 프레임웍의 핵심 인터페이스 컬렉션 프레임웍의 핵심 인터페이스 List : 순서가 있는 데이터의 집합 데이터의 중복을 허용 구현 클래스 : ArrayList, LinkedList, Stack, Vector 등 Set : 순서를 유지하지 않는 데이터의 집합 데이터의 중복을 허용하지 않음 구현 클래스 : HashSet, TreeSet 등 Map : 키(key)와 값(value)의 쌍(pari)으로 이루어지는 데이..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 어떤 프로그램이든 가장 기본적인 단위가 함수 작게 만들어라! 함수를 만드는 첫째 규칙은 '작게!'. 둘째 규칙은 '더 작게!'이다 켄트 벡의 Sparkle 모든 함수가 2줄, 3줄, 4줄 정도였음 각 함수가 너무도 명백하고, 각 함수는 이야기 하나를 표현했고, 각 함수가 너무도 멋지게 다음 무대를 준비했음 => 이것이 답이다! 블록과 들여쓰기 if 문/else 문/while 문 등에 들어가는 블록은 한 줄이어야 한다 그러면 바깥을 감싸는 함수(enclosing function)이 작아질뿐만 아니라 코드를 이해하기 쉬워진다 중첩 구조가 생길만큼 함수가 커져서는 안 된다! 한 가지만 해라! 함수는 한 가지를 해야 ..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 들어가면서 이름을 잘 지으면 여러 모로 편하다 의도를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다 변수, 함수, 클래스 이름은 다음 질문에 모두 답해야 한다 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? => 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 것 함축성 -> 코드 맥락이 코드 자체에 명시적으로 드러나지 않으면 코드가 하는 일을 짐작하기 어려움 이름만 고쳐도 코드가 하는 일을 이해하기가 쉬워진다 그릇된 정보를 피하라 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하면 안된다 여러 계정을 그룹으로 묶을 때 ..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 코드가 존재하리라 어떤 언어를 사용하든 코드는 기계가 이해하고 실행할 정도로 엄밀하고 정확하고 상세하고 정형화되어야 한다 코드는 요구사항을 표현하는 언어 나쁜 코드 고행(wanding) : 나쁜 코드에 발목이 잡혀 고생하는 것 르블랑의 법칙(lebalnc's Law) : 나중은 결코 오지 않는다 나쁜 코드로 치르는 대가 시간을 들여 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길 태도 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다 원초적 난제 빨리 가는 유일한 방법은 언제..
[배워서 바로 쓰는 스프링 프레임워크 - www.yes24.com/Product/Goods/90051375] 1. 소개 이 장에서 다루는 내용 빈 정의 상속 빈 클래스의 생성자 인수를 찾는 방법 원시 타입(int, float 등)이나 컬렉션 타입(java.util.List, java.util.Map 등) 또는 사용자 정의 타입(Address 등)을 사용해 빈 프로퍼티나 생성자 인수를 설정하는 방법 빈 프로퍼티에 p-이름공간(namespace), 생성자 인수에 c-이름공간을 활용해서 XML 파일을 좀 더 간결하게 만든느 방법 빈 인스턴스를 생성하는 팩토리 클래스를 작성할 때 사용하는 스프링 FactoryBean ㅣㅇㄴ터페이스 빈 설정 모듈화하기 2. 빈정의 상속 2.1 빈 정의 상속 예제 애플리케이션의 여..
- Total
- Today
- Yesterday
- 스프링부트
- IntelliJ
- k8s
- linuxkit
- cacheable
- back merge
- 쿠버네티스
- Spring
- clean code
- java
- 자바
- kotlin In Action
- 도커
- ddd
- docker pull limit
- docker for mac
- QuickTimePlayer
- springboot
- gradle
- kotlin
- gasmask
- 도메인주도설계
- 자바스크립트
- 클린코드
- ImagePullBackOff
- 코틀린
- docker
- Kubernetes
- 스프링
- JavaScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |