1. 깨끗한 코드
·
📝 끄적끄적/📖 Clean Code
깨끗한 코드는 ‘보기에 즐거운’ 코드다.책의 서두에서 핵심이 나온 거 아닐까, 어렵게 접근하지 않기로 했다.신입이 실무 프로젝트에 투입됐을 때 제일 먼저 하는 것은 코드를 보며 업무 프로세스를 파악하는 것이다.이때 주석이 없어도 책처럼 읽을 수 있어야 한다. (일부의 주석은 필요하겠지만) 철저한 오류 처리세세한 사항까지 꼼꼼하게 신경 쓰라는 말이다.프로그래머들이 대충 넘어가는 부분 중 하나가 오류 처리다. 가독성깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다.다른 사람이 고치기 쉽다. TDD테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.아무리 코드가 우아해도,아무리 가독성이 높아도,테스트 케이스가 없으면 깨끗하지 않다. 중복같은 작업을 여러 차례 반복한다면 코드가 아이디어를 제대로 표현하지 못한다는 증거다..
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 후기
·
📝 끄적끄적/후기 및 회고
읽게 된 이유 주로 레거시 위주로 수행하다 보니, AWS랑 git action CI/CD를 해보고 싶어서 추석에 읽었다. 느낀 점 테스트, 빌드, 배포를 자동화하니 정말 개발에 집중할 수 있겠다는 생각이 든다.. 나중에 꼭 실무 프로젝트에서 CI/CD를 사용해 보거나, 직접 구축해보고 싶다. 입사 후 첫 프로젝트에서 젠킨스를 사용했었는데, 그땐 완전 병아리 때라 배포하는 거 구경만 해봤다는..😅 2019년 책이다 보니 현재랑 Java, JUnit 버전 차이도 있고, 순탄히 진행되진 않았다. 검색하면서 최근 버전에 맞게 마이그레이션하는 과정도 필요했다. 아래 링크는 꼭 참고하는걸 추천한다. 스프링 부트와 AWS로 혼자 구현하는 웹서비스 후기 (1/2) 해당 github repository의 issues 또..
[자바의 정석] - 인터페이스(interface)
·
📝 끄적끄적/🖥️ 자바의 정석
인터페이스(interface) 인터페이스를 이해하려면 추상화, 다형성에 대한 이해가 필수적이다. ❓인터페이스란 ⭐ 추상 메서드의 집합 핵심 구현된 것이 전혀 없는 설계도, 껍데기(모든 멤버가 public) interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } 인터페이스는 변수를 가질 수 없다. 무조건 상수만 가질 수 있다. 메서드는 전부 다 추상메서드 = 추상메서드의 집합 interface PlayingCared { public static final int SPACE = 4; final int DIAMOND = 3; //public static final int DIAMOND = 3; static int..
[자바의 정석] - 다형성
·
📝 끄적끄적/🖥️ 자바의 정석
다형성 객체지향에서 제일 중요한 개념이다. 다형성을 이해 못 하면 추상클래스, 인터페이스 이해를 못 할 것이다. 여러 가지 형태를 가질 수 있는 능력 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 class SmartTv extends Tv {} Tv t = new SmartTv(); //타입 불일치. ❓ 객체와 참조변수의 타입이 일치할 때와 일치하지 않을 때의 차이 가정 `Tv` 클래스의 멤버(참조변수, 메서드): 5개 `SmartTv` 클래스의 멤버(참조변수, 메서드): 7개 `SmartTv s = new SmartTv();` 타입이 일치할 때는 멤버 7개를 다 사용할 수 있다. `Tv t = new SmartTv();` 일치하지 않을 때는 멤버 5개만 사용할 수 있다. 자손 타입의 참조변수로 ..
[자바의 정석] - 추상 클래스와 추상메서드
·
📝 끄적끄적/🖥️ 자바의 정석
추상클래스, 추상 메서드 미완성(부족한) 설계도 미완성 메서드를 갖고 있는 클래스 abstract class Player { //추상클래스(미완성 클래스) abstract void play(int pos); //추상메서드(몸통{}이 없는 미완성 메서드) abstract void stop(); //추상메서드 } 다른 클래스 작성에 도움을 주기 위한 것이다. 인스턴스 생성이 불가능하다. Player p = new Player(); //에러. 추상 클래스의 인스턴스 생성 불가 상속을 통해 추상 메서드를 완성해야 인스턴스 생성이 가능하다. class AudioPlayer extends Player { void play(int pos); { /* 생략 */} void stop(); { /* 생략 */} } Aud..
[자바의 정석] 참조변수의 형변환, instanceof 연산자
·
📝 끄적끄적/🖥️ 자바의 정석
참조변수의 형변환사용할 수 있는 멤버(멤버 변수, 메서드)의 갯수를 조절하는 것이거 외에는 아무것도 없다!!주소값이나 객체? 절대 안바뀐다. 조상 자손 관계일때만 참조변수 서로 형변환 가능(형제X)class Car {}class FireEngine extends Car {}FireEngine f = new FireEngine();Car c = (Car)f; //조상인 Car타입으로 형변환(생략가능) 예제class CastingTest1 { public static void main(String args[]) { Car car = null; FireEngine fe = new FireEngine(); FireEngine fe2 = null; fe.water(); car = fe; // car..