이번에 우테코 2주차 코드 리뷰에서 정말 중요한 피드백을 하나 받았습니다! 바로 전역에서 객체를 선언하지 말라는 것! 그렇다면 왜 객체를 전역에서 선언하는 것이 위험할까요? ❓객체의 특성 이번 우테코 2주차 미션에서 제가 작성한 코드 하나를 예로 보면서 어떤 상황인지 설명드리겠습니다. const carHandler = { readCarsInput: async () => { const INPUT = await readInput(CAR_MESSAGES.INPUT); validateCarsInput(INPUT); return INPUT; }, handleCarConvertedToClass: (cars) => { const carClasses = cars.map((car) => { const carClass =..
지난 시간 객체 지향의 핵심에 대해서 알아보았는데, 더 나아가 의존성에 대해서 깊게 공부해보고자 합니다! 객체 지향의 핵심에 대해서는 아래 포스팅을 참고해주세요! [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; } } 사실 이렇게 권장하는 이유가 분명이 있을 것 같은데요.. 아니면 정말 단순한 ‘컨벤션’ 즉 관행에 불과한 것일까요? 🤔 성능 차이? 얼핏 성능에 관련된 문제가 있다는 이야기를 들었습니다.. 혹시나 찾아봤는데, 아니더라구요. 컴파일러나 인터프리터에 의해 최적화되어 큰 영향을 받지 않는다는 것이었습..
🤔WeakMap..? WeakMap은 Javascript의 객체 타입입니다. Map과의 차이점은 키 값이 강력한 참조(strong reference)를 하지 않고, 약한 참조(weak reference)를 한다는 특징이 있습니다. ❓강력한 참조(strong reference)와 약한 참조(weak reference)는 무엇인가요? 강력한 참조와 약한 참조는 메모리 관리에서 사용되는 용어입니다. **강력한 참조(strong reference)**는 해당 객체가 메모리에서 제거되지 않도록, 무기한으로 유지되도록 보장하기 때문에 다른 곳에서 객체를 참조하지 않더라도 가비지 컬렉션의 대상이 되지 못합니다. 반면 **약한 참조(weak reference)**는 객체를 참조하지 않는 경우, 메모리 누수를 방지하기 ..