본문 바로가기

장점

(2)
<JS> 클로저에 대한 고찰 (소개 / 활용 / 단점 / 메모리) 1. 소개 * 배경 - 최근 기업 면접을 다니며 가장 자주 받은 질문 중 하나가 클로저에 대한 질문이었다. 간단하게만 묻고 넘어가는 기업도 있었지만 내가 어디까지 생각해봤는지 물어보는 기업도 있었다. 그래서 클로저가 무엇인지부터 시작해서 깊이 있게 고찰해보려 한다. * 클로저란 - 클로저는 외부 변수를 기억하고 이 외부 변수에 접근할 수 있는 함수를 의미한다. 자바스크립트의 렉시컬 환경은 외부 렉시컬 환경을 가리키는 outer 가 존재한다. - 알다시피 자바스크립트는 렉시컬 스코프를 따르므로 식별자가 현재 스코프에 존재하지 않으면 선언된 위치를 기준으로 외부 환경에서 해당 변수를 찾는다. - 결과적으로 자바스크립트의 함수는 모두 클로저이다. function func() { const x = 10; ret..
< OOP > 객체 지향 프로그래밍이란? 1. 객체 지향 프로그래밍이란 * OOP란 - 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나로, 프로그램을 '객체'의 모임으로 파악하고자 하는 것이다. 객체 지향 프로그래밍은 유연하고 변경이 용이할 뿐만 아니라 유지 보수가 쉽기 때문에 대규모 SW개발에서 자주 사용된다. * 구성 요소 - 클래스(Class) 같은 종류의 집단에 속하는 속성과 행위를 정의한 것이다. 위의 예시에서 스마트폰에 해당한다. 객체지향 프로그램의 기본적인 사용자 정의 데이터형이다. 클래스는 다른 클래스 또는 외부 요소와 독립적으로 디자인하여야 한다. 쉽게 말해 클래스는 비슷한 구조를 계속 만들어 내기위한 일종의 틀이다. 내부에 속성이나 메서드들이 정의되어 있..