객체 지향을 공부하는 와중 퍼사드 패턴이라는 것을 접하게 되었고 이를 완전히 이해하고자 블로그 글을 적습니다! ❓퍼사드 패턴? 우선 정의부터 살펴볼까요? 퍼사드(프랑스어: façade[fəˈsɑːd] 영어: facade) 패턴(외관 패턴)은 소프트웨어 공학 디자인 패턴 중 하나이다. 객체 지향 프로그래밍 분야에서 자주 쓰인다. Facade (외관)는 "건물의 정면"을 의미합니다. 복잡한 시스템이나 서브 시스템의 인터페이스를 단순화하는 데 사용됩니다. 이 패턴은 클라이언트가 복잡한 시스템의 일련의 서브 시스템과 직접 상호작용하는 대신, 단일 인터페이스를 제공하여 시스템과의 상호작용을 쉽게 만듭니다. 저는 이 글에서 눈에띄는 것은 단순화! 입니다. 자바스크립트의 예시를 보겠습니다. // 복잡한 주문 시스템 ..
지난 시간 객체 지향의 핵심에 대해서 알아보았는데, 더 나아가 의존성에 대해서 깊게 공부해보고자 합니다! 객체 지향의 핵심에 대해서는 아래 포스팅을 참고해주세요! [Javascript] 객체 지향 (Object Oriented)의 핵심, JS의 다중 패러다임 저는 요즘 클린 아키텍처(Clean Architecture) 책을 읽고 있어요. 이 책에서는 ‘좋은 아키텍처를 만드는 일은 객체 지향 원칙을 이해하고, 응용하는 것에서 출발한다’ 라고 말합니다. 왜 그런 것일 lurgi.tistory.com ❓의존성이란? 의존성은 객제 지향에서 한 객체가 다른 객체와의 상호 관계를 나타내는 것입니다. 객체를 분리하고, 의존성을 가지게 됨으로써 복잡한 메서드를 모듈화 하여 빠르게 코드를 이해할 수 있고 재사용성도 높아..
이번 시간에는 git에서 과거 커밋을 없애기 위해 합치는 방법을 알려드리고자 합니다! 개발을 하고 커밋, 푸쉬를 하다보면 다음과 같은 상황이 많이 발생하기 마련입니다. feat : #3 커밋을 푸쉬하자 마자, 잘못된 부분을 인지하고 바로 수정 후 fix 커밋을 날렸습니다. 이런 상황이라면 커밋이 2개가 되겠죠? 사실상 불필요한 커밋이라는 것! 이번 시간에는 위와 같은 상황을 git의 rebase라는 기능을 이용하여 커밋을 합쳐보고자 합니다! 저는 VSC를 사용하여 rebase기능을 공부하고자 합니다. 이를 기준으로 설명드릴게요! 1. Git 대화형 리베이스 실행 일단 처음으로 실행해야 하는 것은 대화형 리베이스를 실행하는 것입니 git rebase -i HEAD~(원하는 커밋의 갯수) 여기서 주목할 점은..
저는 요즘 클린 아키텍처(Clean Architecture) 책을 읽고 있어요. 이 책에서는 ‘좋은 아키텍처를 만드는 일은 객체 지향 원칙을 이해하고, 응용하는 것에서 출발한다’ 라고 말합니다. 왜 그런 것일까요? 책에서는 객체 지향을 통해 ‘아키텍트는 플러그인 아키텍처를 구성할 수 있고, 이를 통해 고수준의 정책을 포함하는 모듈을 저수준의 세부사항을 포함하는 모듈에 대해 독립성을 보장할 수 있다. (중략) 독립적으로 개발하고 배포할 수 있다’ 라고 말해요. 음 도통 무슨말인지 모르겠네요🤣 객체 지향은 쉽게 말하면 '실제 세계를 모델링 함으로써 소프트웨어를 조금 더 쉽게 이해할 수 있는 패러다임' 이라 말할 수 있겠네요. 그러면 객체 지향의 핵심을 파악하며, 지금까지의 말이 어떤 의미인지 알아가 보도록 ..
우아한 테크코스의 프리코스 1주차를 통해 많은 것들을 배웠는데요,, 코드 리뷰에서 다른 분들의 조언과 좋은 코드들을 보며 많은 생각을 하게 되었습니다. 😊 1주차 문제에선 “사용자의 입력을 받아 재시작할지 종료할지를 결정”하는 기능이 있었습니다. 코드 리뷰를 통해 많은 분들의 코드에서 재시작 로직을 while 문으로 작성한 것이 많이 보였습니다. let is_retry = true; while(is_retry){ gameStart(); //게임을 시작한다 const USER_INPUT = await readUserInput(); // 재시작 여부를 묻는다 if(USER_INPUT === "2") is_retry = false; //입력이 2일경우 게임을 종료한다. } 위와 같은 형식으로 while문을 채..
자바스크립트의 Airbnb 코드 컨벤션에 따르면 다음과 같습니다! else if 블록 안에 return 구문이 있으면 여러 if 블록으로 나눠질 수 있습니다. // bad function cats() { if (x) { return x; } else if (y) { return y; } } // good function cats() { if (x) { return x; } if (y) { return y; } } 사실 이렇게 권장하는 이유가 분명이 있을 것 같은데요.. 아니면 정말 단순한 ‘컨벤션’ 즉 관행에 불과한 것일까요? 🤔 성능 차이? 얼핏 성능에 관련된 문제가 있다는 이야기를 들었습니다.. 혹시나 찾아봤는데, 아니더라구요. 컴파일러나 인터프리터에 의해 최적화되어 큰 영향을 받지 않는다는 것이었습..