FE/JS
JavaScript: var, let, const
2025.05.13
자바스크립트에서 변수를 선언하는 방법은 세 가지가 있다: var, let, const 이번 글에서는 var, let, const의스코프(Scope), 중복 선언, 호이스팅(Hoisting), 전역 객체(window) 네 가지 관점에서 비교해본다.1. 스코프: 변수가 살아 있는 공간var: 함수 스코프var는 오직 함수 단위로만 스코프를 나눈다. {} 블록은 무시한다.if (true) { var x = 1;}console.log(x); // 1 (밖에서도 접근됨)함수 안에서 선언하면 그 함수 안에서만 유효하지만, 함수 바깥에서 {} 안에 선언하면 밖에서도 살아 있다. let, const: 블록 스코프let과 const는 {} 블록 안에서만 살아 있다. 가장 큰 차이점이자 장점이다.if (true) { ..
아키텍처/책_클린 아키텍처
Clean Architecture 정리 - 1부 소개
2025.05.11
목차설계와 아키텍처란두 가지 가치에 대한 이야기1장. 설계와 아키텍처란설계와 아키텍처는 실질적인 차이가 없다. 따라서 이 글에서는 두 용어를 혼용해서 사용한다.좋은 소프트웨어 설계(또는 아키텍처)의 목표는 간단하다. 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 것이다. ✅ 소프트웨어 설계를 무시한 개발의 흔한 흐름출시 우선 사고방식"설계는 나중에, 일단 시장에 먼저 내자"기능 구현만 반복하며 기술 부채가 누적된다기능 추가에만 집중경쟁자를 의식해 새 기능만 계속 추가기존 코드는 정리되지 않고 복잡도만 증가한다결국 리빌딩 결심생산성 저하 → "다시 만들자"라는 결론하지만 설계에 대한 학습과 반성 없이 다시 시작하면, 같은 실패를 반복하게 된다 ★ 실제 사례: 소프트웨어 설계를 무시한 조..
개발 관련 지식/책_객체지향의 사실과 오해
객체지향의 사실과 오해 정리 - 7장. 역할, 책임, 협력 관점에서 본 객체지향
2025.05.06
📚 도서관 도메인 예제도서관에는 다양한 분야의 책들이 정리되어 있다. 각 책은 고유한 제목과 대출 가능 여부 정보를 가진다.이용자는 책장을 둘러보거나 도서 검색 시스템을 통해 원하는 책을 찾고, 대출 데스크에 있는 사서에게 대출을 요청한다.사서는 책의 상태를 확인하고, 이용자의 정보를 기반으로 대출을 처리한다.대출이 완료되면 대출일과 반납일이 기록된 대출증을 발급한다.1. 도메인 모델을 활용한 객체 정의1. 도메인 객체 구분책(Book)상태: 제목, 대출 여부이용자(User)대출 요청의 주체BookFinder사용자가 책을 찾는 데 도움을 주는 도우미 객체사서(Librarian)책 상태 확인, 대출 처리, 대출증 발급대출증(LoanTicket)대출된 책과 사용자, 대출일·반납일을 기록📌 객체로 분리할 ..
개발 관련 지식/책_객체지향의 사실과 오해
객체지향의 사실과 오해 정리 - 6장. 객체 지도
2025.05.03
기능 중심 설계는 변화에 취약하다.기능은 자주 바뀐다.회사 정책, 마케팅 전략, 외부 도구 등장 등 이유는 다양하다.기능 중심으로 구조를 짜면, 변화에 약해진다.기능 중심 설계는 절차 흐름을 코드에 직접 녹인다.하나가 바뀌면 연쇄적으로 다른 부분도 수정해야 한다.비즈니스 규칙은 여기저기 흩어지고, 재사용성이나 확장성도 떨어진다. 예시: 기능 중심 설계의 흐름초기 요구사항:"사용자가 버튼을 누르면 쿠폰을 발급하고, 그걸 문자로 보낸다."if (user.clickedButton) { const coupon = createCoupon(user.id); sendSms(user.phone, coupon.code); logIssuedCoupon(user.id, coupon.code);}문제 없음. 간단하고 잘..
개발 관련 지식/책_객체지향의 사실과 오해
객체지향의 사실과 오해 정리 - 5장. 책임과 메세지
2025.04.26
'자율적인' 객체란 무엇일까?객체는 스스로 정한 원칙에 따라 판단하고, 스스로의 의지로 행동하는 존재다.하지만, 객체가 행동하는 진짜 이유는 하나다.다른 객체로부터 요청을 받았기 때문이다.요청을 받아서 행동하는 것,그 행동을 우리는 **"책임"**이라고 부른다.즉, 자율적인 객체란, 요청을 받더라도 스스로 판단해서 책임을 수행하는 객체를 말한다.요청은 구체적이어도, 추상적이어도 문제다자율성을 살리려면 요청을 너무 구체적으로 하면 안 된다.예를 들어,"아이스 바닐라 라떼를 만들어 주세요. 얼음은 50g, 커피와 우유 비율은 9:1로 해주세요."이렇게 지나치게 세세한 요청을 하면,바리스타 객체는 스스로 판단할 여지가 없다.단순히 지시받은 대로 만들 뿐이다. (자율성 X)반대로,"커피 하나 주세요."처럼 너무..