지난 시간 객체 지향의 핵심에 대해서 알아보았는데, 더 나아가 의존성에 대해서 깊게 공부해보고자 합니다! 객체 지향의 핵심에 대해서는 아래 포스팅을 참고해주세요! [Javascript] 객체 지향 (Object Oriented)의 핵심, JS의 다중 패러다임 저는 요즘 클린 아키텍처(Clean Architecture) 책을 읽고 있어요. 이 책에서는 ‘좋은 아키텍처를 만드는 일은 객체 지향 원칙을 이해하고, 응용하는 것에서 출발한다’ 라고 말합니다. 왜 그런 것일 lurgi.tistory.com ❓의존성이란? 의존성은 객제 지향에서 한 객체가 다른 객체와의 상호 관계를 나타내는 것입니다. 객체를 분리하고, 의존성을 가지게 됨으로써 복잡한 메서드를 모듈화 하여 빠르게 코드를 이해할 수 있고 재사용성도 높아..
저는 요즘 클린 아키텍처(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; } } 사실 이렇게 권장하는 이유가 분명이 있을 것 같은데요.. 아니면 정말 단순한 ‘컨벤션’ 즉 관행에 불과한 것일까요? 🤔 성능 차이? 얼핏 성능에 관련된 문제가 있다는 이야기를 들었습니다.. 혹시나 찾아봤는데, 아니더라구요. 컴파일러나 인터프리터에 의해 최적화되어 큰 영향을 받지 않는다는 것이었습..
이번에 우아한 테크코스 2주차 미션에서 추가된 요구사항이 있었습니다. 다름아닌 ‘indent(인덴트, 들여쓰기) depth를 2까지만 허용한다.’ 라는 요구사항이 있었습니다. 이 요구사항을 보니 의문이 들더라구요. 왜 2라는 숫자가 정해져 있을까? 혼자서 코드를 짤 땐 3번 4번 들여쓰기를 하는 경우도 허다했거든요. 이런 의문을 가지고 들여쓰기가 코드 가독성에 어떠한 영향을 미치는지 알아보려고 합니다! 🤔들여쓰기 크기가 미치는 영향? 들여쓰기가 중요한 것은 소스 코드의 구조를 미묘하게 형성하는 것입니다. 블록과 블록사이의 관계를 파악하는 것을 통해 계층 구조를 명확하게 알 수 있죠. 이는 다른 동료 개발자가 코드를 보더라도 빠르게 스캔할 수 있게 도와줍니다. 논리적인 흐름을 빠르게 이해할 수 있다는 말이..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 😉문제 풀이 설명 이 문제는 이분탐색 문제 입니다. 이분 탐색 문제를 많이 접하지 않아서 이분 탐색 문제임을 알아차리는게 어려웠습니다. 1부터 2억까지 숫자 중 하나의 값을 찾는 문제임을 캐치 한다면 이분 탐색으로 접근하는 방법을 떠올리지 않았을 까 생각합니다. 이분 탐색임을 인지한다면 문제 자체가 어렵진 않습니다. 아래의 코드를 확인해 주세요 😎문제 풀이 코드 function solution(stones, k) { let str = 1; let end = 200000000; while(str !== end)..