전체 글 187

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

목차1. 자료 추상화2. 자료/객체 비대칭3. 디미터 법칙1️⃣ 기차 충돌2️⃣ 잡종 구조 3️⃣ 구조체 감추기4. 자료 전달 객체1️⃣ 활성 레코드5. 결론 변수를 비공개 private로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 충동이든 변덕이든, 변수 타입이나 구현을 맘대로 바꾸고 싶어서다. 그렇다면 어째서 수많은 프로그래머가  조회 get 함수와 설정 set 함수를 당연하게 공개(public) 해서비공개 변수를 외부에 노출할까?   1. 자료 추상화❌ BAD - 구체적인 Point 클래스public class Point { public double x; public double y;} ⭕️ Good - 추상적인 Point 클래스public interface Poi..

카테고리 없음 2025.03.10

[클린코드] 5. 형식 맞추기

목차1. 형식을 맞추는 목적2. 적절한 행 길이를 유지하라1️⃣ 신문 기사처럼 작성하라2️⃣ 개념은 빈 행으로 분리하라3️⃣ 세로 밀집도4️⃣ 수직 거리① 변수선언② 인스턴스 변수③ 종속 함수④ 개념의 유사성⑤ 세로 순서3. 가로 형식 맞추기1️⃣ 가로 공백과 밀집도2️⃣ 가로 정렬 - ❌3️⃣ 들여쓰기4️⃣ 가짜 범위4. 팀 규칙5. 밥 아저씨의 형식 규칙 질서정연하고 깔끔하며, 일관적인 코드를 본다면 사람들에게 전문가가 짰다는 인상을 심어줄 수 있다.반대로, 코드가 어수선해 보인다면 프로젝트 전반적으로 무성의한 태도로 작성했다고 생각할 것이다.프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야한다.코드 형식을 맞추기 위한 간단한 규칙을 정하고, 그 규칙을 착실히 따라야 하며,팀으로 일한다면 팀이 합의해 ..

카테고리 없음 2025.03.05

[클린코드] 4. 주석

목차1. 주석은 나쁜 코드를 보완하지 못한다2. 코드로 의도를 표현하라3. 좋은 주석4. 나쁜 주석  나쁜 코드에 주석을 달지 마라. 새로 짜라.브라이언 W.커니핸, P.J.플라우거주석은 필요악이다. 코드로 의도를 표현하지 못해, 실패를 만회하기 위해 쓰는 것이다. 주석은 언제나 실패를 의미한다. 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다. 그래서 주석은 반겨 맞을 손님이 아니다.주석을 무시하는 이유가 무엇이냐고? 주석이 오래될수록 코드에서 멀어져서 거짓말을 하게 될 가능성이 커지기 때문이다. 코드는 유지보수를 해도, 주석을 계속 유지보수하기란 현실적으로 불가능하기 때문이다. 1. 주석은 나쁜 코드를 보완하지 못한다코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나빠서이..

카테고리 없음 2025.03.04

[클린코드] 3. 함수

목차 1.  작게 만들어라!2.  한 가지만 해라!3.  함수 당 추상화 수준은 하나로!4.  Switch 문5.  서술적인 이름을 사용하라!6.  함수 인수7.  부수 효과를 일으키지 마라!8.  명령과 조회를 분리하라!9.  오류코드보다 예외를 사용하라!10.  반복하지마라!11.  구조적 프로그래밍12.  함수를 어떻게 짜죠? Intro 어떤 프로그램이든 기본적인 단위가 함수다.길이가 길고, 중복된 코드에, 괴상한 문자열에, 낯설고 모한 자료 유형의 코드로 이루어진 함수는 이해하기에 많은 어려움이 따른다. 그렇다면 읽기 쉽고 이해하기 쉬운 함수는 어떻게 작성해야하는가? 1.  작게 만들어라! 함수를 만들 떄 최대한 '작게! 만들어라.public static String renderPageWithSe..

카테고리 없음 2025.02.23

[클린코드] 2. 의미있는 이름

목차 1.  의도를 분명히 밝혀라2.  그릇된 정보를 피하라3.  의미 있게 구분하라 (불용어-noise word-를 쓰지 말자)4.  발음하기 쉬운 이름을 사용하라5.  검색하기 쉬운 이름을 사용하라6.  인코딩을 피하라 (변수에 부가 정보를 덧붙여 표기하는 것을 뜻함.)7.  자신의 기억력을 자랑하지 마라8.  클래스 이름9.  메서드 이름10.  기발한 이름은 피하라11.  한 개념에 한 단어를 사용하라12.  말장난을 하지마라13.  해법 영역(Solution Domain) 용어를 사용하자 14.  의미 있는 맥락을 추가하라15.  불필요한 맥락을 없애라 1.  의도를 분명히 밝혀라변수의 존재 이유, 기능, 사용법 등이 변수/함수/클래스명에 드러나야한다. 따로 주석이 필요하지 않을 정도로.의미를 ..

카테고리 없음 2025.02.16

[클린코드] 1. 깨끗한 코드

목차 1.  코드가 존재하리라2. 나쁜 코드 3. 나쁜 코드로 치르는 대가3-1. 원대한 재설계의 꿈 3-2. 태도3-3. 원초적 난제 3-4. 깨끗한 코드라는 예술3-5. 깨끗한 코드란?4. 우리들 생각5. 우리는 저자다 6. 보이스카우트 규칙7. 프리퀄, 그리고 원칙8. 결론참조  서론)엊그제 내가 작업한 결과물을 정기 배포에 올리기 전에 파트장님께 테스트 받는 시간이 있었다.분명 다른 분들께 테스트를 다 마치기도 했고, 간단한 검색기능이어서 자신있게 테스트를 받았는데설정을 다르게 하니까 갑자기 오류가 나와서 식은땀이 났다.만약에 정기배포 후에 실제 운영 중에 오류가 나서 컴플레인이 들어왔다면? 생각만해도 아찔했다.내가 작성한 코드는 프론트앤드의 필터 함수 단 한 줄이었는데, 특정 환경에서 빈 데이터..

카테고리 없음 2025.02.15

[클린코드] 0. 추천사 요약

코드 작성하면서 여러 방법 중에 어떤 방법으로 작성해야하는지 고민이 깊어져서 사수님께 여쭤봤더니,사수님께서 가장 깊은 영향을 받은 책이라고 하시며 클린코드 책을 직접 빌려주셨다.이전에 여러번 후배에게 빌려줬는데, 반납을 안해서 매번 새로 사신다고 ㅋㅋ 반납 필수라고 신신당부 하셨다너무 좋은 사수님 밑에서 일해서 행복하다.. 열심히 읽고 요약해서 클린코드 작성해야지!! [추천사]스크럼과 에자일에 관심이 모아진 현재는 제품을 신속하게 시장에 출시하는 방법론을 강조한다.우리는 (소프트웨어) 공장을 전속력으로 가동해 소프트웨어를 재빨리 내놓고 싶어한다. 여기서 (소프트웨어) 공장이란 사람 공장이다.즉 개발자들을 제품 백로그나 사용자 스토리를 토대로 제품을 갱산한다고 생각하고,느낀다.이런 제조업의 메타포가 그런 ..

카테고리 없음 2025.02.12

[네트워크] 1. 네트워크의 큰 그림

1️⃣ 네트워크의 기본 구조네트워크는 노드와 간선으로 이루어진 자료구조로, [그래프] 형태를 띔[네트워크 토폴리지] : 네트워크 상에서 노드와 노드 사이의 연결 구조 ex) 망형, 트리형, 링형, 성형, 버스형(선형)[호스트]: 네트워크 가장자리에 위치하면서, 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종 수신하는 노드 ex) 노트북이 구글에 접속했다면, 노트북과 구글의 서버 컴퓨터가 각각의 호스트 역할을 한 것임중간 노드는 정보를 원하는 수신지까지 안정적으로 전송하는 역할을 함. ex) 스위치,라우터,공유기◾️ LAN과 WAN전세계에는 여러 개의 LAN이 있고 WAN을 통해 LAN간의 통신을 가능하게함[LAN]: Local Area Network로 근거리 네트워크. ex) 공유기를 통해 모든 네..