'분류 전체보기' 카테고리의 글 목록 (10 Page)
공부정리_코딩
개발 관련 지식/책_객체지향의 사실과 오해
객체지향의 사실과 오해 정리 - 4장. 역할, 책임, 협력
2025.04.23
객체지향에 처음 입문하면 대부분 이렇게 시작한다.“이 클래스는 어떤 속성과 메서드를 가져야 하지?”틀렸다.객체지향 설계의 출발점은 개별 객체가 아니다.여러 객체가 모여 만들어내는 협력이 먼저다.비록 어떤 객체가 겉보기엔 다소 기묘하거나 비합리적으로 보일지라도,전체 협력의 맥락 속에서는 꼭 필요한 존재일 수 있다.협력: 요청과 응답의 흐름객체지향에서 협력이란, 객체들 사이에서 발생하는 요청과 응답의 연쇄 흐름이다.예를 들어보자.고객이 음식을 주문한다 → 서버 객체가 요리사 객체에게 요청한다요리사가 요리를 만든다 → 다시 서버에게 전달한다서버는 고객에게 요리를 서빙한다이처럼 협력은 하나의 기능이 여러 객체를 통해 분산되어 수행되는 과정이다.책임: “이 요청, 누가 처리할 건가?”객체는 협력 과정에서 요청을 ..

Server/DB
재귀 CTE 정리 (코딩 테스트용)
2025.04.22
CTE(Common Table Expression) = 일시적인 결과 테이블.그 중에서 자기 자신을 재참조하는 걸 재귀 CTE라고 부름.MySQL, PostgreSQL, SQL Server 등에서 사용 가능.Oracle은 CONNECT BY 같은 다른 방식 사용.기본 문법-- 기본 문법WITH RECURSIVE CTE_NAME (columns...) AS ( -- anchor member (초기값) SELECT ... FROM ... UNION ALL -- recursive member (자기 자신 호출) SELECT ... FROM CTE_NAME JOIN ...)SELECT * FROM CTE_NAME;첫 SELECT: 시작점 (anchor)두 번째 SELE..

개발 관련 지식/책_객체지향의 사실과 오해
객체지향의 사실과 오해 정리 - 3장. 타입과 추상화
2025.04.21
추상화어떤 현상이나 구조를 더 명확하게 이해하거나 목적을 효과적으로 달성하기 위해, 불필요한 세부 사항을 생략하거나 감춤으로써 복잡도를 줄이는 방식.예) 자동차 계기판은 차량의 모든 상태를 보여주지 않고, 속도나 연료량처럼 필요한 정보만 표시한다.추상화 방법공통점은 취하고 차이점은 생략하는 일반화목적에 불필요한 디테일 제거예시 1) 고양이, 강아지, 토끼는 생김새는 다르지만 '동물'이라는 공통 개념으로 묶는다. → 각각의 차이는 무시하고, 생명체, 움직임 같은 공통 속성만 취함.예시 2) 스마트폰 지도 앱은 건물 색깔이나 간판 같은 정보는 제거하고, 길과 방향만 표시한다. → 길 찾기라는 목적에 집중한 추상화.개념 (Concept)공통점을 기준으로 객체들을 묶기 위한 틀.예)'탈 것' → 자동차, 자전거..

개발 관련 지식/책_객체지향의 사실과 오해
객체지향의 사실과 오해 정리 - 2장. 이상한 나라의 객체
2025.04.19
객체란객체는 구별 가능한 식별자, 특징적인 행동, 변경 가능한 상태를 가진다.물리적인 것이든 개념적인 것이든, 하나의 개별적인 단위로 다룰 수 있어야 객체로 볼 수 있다.생성 시점을 알 수 있고, 다른 객체와 구별 가능하며, 수량을 셀 수 있다.상태특정 시점에 객체가 가지고 있는 정보의 집합으로 객체의 구조적 특징을 표현한다.단순한 값이나 다른 객체들의 조합으로 표현되며, 흔히 **속성(property)**이라고 부른다.상태는 미래의 행동 결과를 예측하게 돕는다.예시) 자판기에 500원을 넣으면, 1700원 음료수를 뽑을 수 있는가?[행동 이력 기반]자판기에 100원 3개 → 500원 1개 → 100원 4개 → 앞으로 500원 넣을 예정→ 가능 여부 판단이 복잡해짐[상태 기반]자판기 현재 보유 금액 12..
개발 관련 지식/책_객체지향의 사실과 오해
객체지향의 사실과 오해 정리 - 1장. 협력하는 객체들의 공동체
2025.04.18
객체지향이란?객체지향은 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고, 객체를 이용해 시스템을 분할하는 방법이다.객체지향의 목표고객과 사용자를 만족시킬 수 있는 소프트웨어를 만드는 것 잘못된 이해실세계의 사물을 최대한 유사하게 소프트웨어 내부에 대응시키는 것그러나 객체지향을 설명하기 위한 비유로 실세계의 사례를 사용하는 것은 효과적임예시) 카페에서의 커피 주문과정핵심 개념 정리 역할 (Role)객체가 어떤 맥락에서 수행하는 기능 또는 위치예시: 손님, 캐시어, 바리스타 책임 (Responsibility)역할을 수행하기 위해 객체가 해야 할 구체적인 일들손님: 커피 주문캐시어: 주문 받기, 커피 제공바리스타: 커피 만들기 협력 (Collaboration)객체들이 서로 메시지를 주고받으며 함께 작..