누가봐도 인생 1회차의 기록장

전체 글 77

[클린코드] TIL 10장 클래스

오늘 TIL 3줄 요약 클래스는 작을 수록 좋다 하나의 클래스는 하나의 책임만! 응집력 있는 클래스를 만들어라 책에서 기억하고 싶은 내용 변수목록 : 정적static 공개 public 상수 > 정적 비공개 private 변수 > 비공개 인스턴스 변수 변수목록 다음에는 공개함수가 나오고 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다. 즉 추상화 단계가 순차적으로 내려감 클래스를 설계할 때도, 함수와 마찬가지고 '작게'가 기본 규칙 클래스 이름은 해당 클래스 책임을 기술해야 한다. (실제로 작명은 클래스 크기를 줄이는 첫번째 관문) 클래스 이름이 모호하다면 클래스 책임이 너무 많아서다. [단일 책임 원칙 (SRP : Single Responsibility Principle) ] 단일 책임 원칙 : ..

[클린코드] TIL 9장 단위테스트

오늘의 TIL 3줄 요약 * 테스트 코드는 실제 코드만큼이나 중요하다 * 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존하고 강화한다 * 테스트코드의 표현력을 높이고 간결하게 정리하자 책에서 기억하고 싶은 내용 1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다 2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다 3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다 * 테스트 코드는 실제 코드 못지 않게 중요하다. 실제 코드 못지않게 깨끗하게 짜야 한다. * 단위 테스트 코드는 유연성, 유지보수성, 재사용성을 제공한다. * 테스트 케이스가 없다면 모든 변경이 잠정적인 버그다. * 깨끗한 테스트 코드를 만들려면? 가독성을 위해 명..

[클린코드] TIL 7장 오류처리

오늘 TIL 3줄 요약 깨끗한 코드와 오류 처리는 확실히 연관성이 있다 오류코드보다는 예외를 사용하라 오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 크게 높아진다 책에서 기억하고 싶은 내용 깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다. (여기서 좌우된다는 표현은 코드 기반이 오류만 처리한다는 의미가 아니라 여기저기 흩어진 오류 처리 코드 때문에 실제 코드가 하는 일을 파악하기가 거의 불가능하다는 의미) 오류 코드보다 예외를 사용하라 Try-Catch-Finally문부터 작성하라 미확인unchecked예외를 사용하라 예외에 의미를 제공하라 (예외를 던질 때는 전후 상황을 충분히 덧붙인다) 호출자를 고려해 예외 ..

[클린코드] 6장 객체와 자료 구조

오늘 TIL 3줄 요약 객체는 동작을 공개하고 자료를 숨긴다. 자료를 세세하게 공개하기 보다는 추상적인 개념으로 표현하는 것이 좋다. 객체지향 코드에서 어려운 변경은 절차적인 코드에서 쉬우며, 절차적은 코드에서 어려운 변경은 객체지향 코드에서 쉽다. 책에서 기억하고 싶은 내용 변수를 비공개private로 정의하는 이유 : 남들이 변수에 의존하지 않게 만들고 싶어서 변수를 private으로 선언하더라도 각 값마다 조회get 함수와 설정set 함수를 제공한다면 구현을 외부로 노출하는 셈 구현을 감추려면 추상화가 필요하다! 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 아무 생각없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다 객체지향 코드에서 어려운 변경은 절차적인 코드..

☕ 문벅스 카페 메뉴 앱 만들기 #03 (웹서버 띄우고, API요청하여 메뉴판 관리)

90년생 HTML과 웹 웹의 고향 스위스 1990년도 웹의 등장 Tim Bernes-Lee 가 만들었음 효율적으로 정보를 주고 받기 위해 탄생 1990.10 세계 최초의 웹 페이지 에디터 1990.11 세계 최초의 웹브라우저 (www) 1990.12 세계 최초의 웹서버 (info.cern.ch) - 웹의 시작 Q. 왜 웹서버가 필요할까? A. 콘텐츠 관리 : 웹에서 다양한 컨텐츠를 불특정 다수에게 공개할 때 여러 곳에 분산되어 있으면 업데이트를 파악하기도 어렵고 동시 갱신이 어렵고 비용도 많이 듦 -> 웹서버컴퓨터 하나에 정보를 모아두자 => 데이터 상태를 효율적으로 관리하고, 변경된 데이터를 클라이언트에게 효율적으로 공유하기 위해 1. 요구사항 분석 2. 웹서버 실행시키기 fetch('url', opt..