공부46 클로저 앞서 var와 let의 차이점이라는 게시물에서 언급했지만 클로저에 대해 좀 더 자세히 공부해보고자 게시글을 남깁니다. 대략적인 감을 잡았다고 생각했었는데, 비슷한 예임에도 실행 결과 예측이 힘들어서 공부의 필요성을 느꼈기 때문입니다. 게시글에서 틀린 부분이 있거나 혹 문제가 되는 부분이 있다면 댓글 남겨주시면 감사하겠습니다. 글의 목차는 다음과 같습니다. 1. 클로저란 함수 렉시컬 스코프 2. 클로저의 예 _____ 클로저란 클로저는 자바스크립트에서 중요한 개념 중 하나이지만 자바스크립트 고유의 개념이 아니기 때문에 ECMAScript 명세에 등장하지 않는다고 한다. 다만 MDN의 정의를 살펴보면 다음과 같다. 클로저는 함수와 함수가 선언된 어휘적 환경(Lexical environment)의 조합이다. .. 2021. 7. 24. 배열 API 이 게시글을 통해 얕게나마 배열 API에 대해 정리해나가고자 합니다. 최근 자바스크립트로 기본적인 코딩 문제[1]를 풀다가 막히기도 했고, 실제 프로젝트에서 통신 중 JSONArray 등의 자료구조를 다룰 일이 많기에 더 늦기 전에 공부하고자 합니다. 특히 자바스크립트의 배열은 자바와는 다르게 굉장히 유연해 그 활용도가 더 높다고 할 수 있습니다[2][3]. 또한 관련 글들을 보다 놀랐던 것은 reduce, map, filter와 같은 함수형 프로그래밍과 관련[4]된 최신 메서드들이 사실은 ES5부터 사용 가능한 메서드였다는 점이었습니다. 게시글의 틀린 부분 혹은 피드백이 있으시면 댓글로 남겨주세요. 목차는 다음과 같습니다. 1. 개요 2. filter 3. map 4. reduce 5. 기타 _____.. 2021. 7. 19. 템플릿 콜백 패턴 토비의 스프링을 보다가 템플릿/콜백 패턴을 접하게 되었습니다. 책에서는 이에 대해 다음과 같이 정의합니다. 조금 복잡해보이지만 메소드 레벨에서 일어나는 DI다. 왜냐하면 클라이언트가 템플릿 메소드를 호출하면서 콜백 오브젝트를 전달하는 것이기 때문이다. DI, 템플릿 메소드, 콜백 오브젝트 등 여러 용어가 등장해 복잡해 보입니다. 이를 이해하기 위해 아래 내용[1]을 짚고 넘어가고자 합니다. 1. 전략 패턴 2. 템플릿 메소드 패턴 3. 템플릿 콜백 패턴 혹시 내용에 틀린 부분이나 피드백이 있다면 댓글로 남겨주시면 감사하겠습니다. _____ 전략 패턴 전략 패턴(Strategy Pattern)은 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 아래 클래스 다이어그램을 살펴보자. Context(문맥) .. 2021. 6. 21. 정렬] K번째 수 꼭 이직이 아니더라도 개발자로서 좀 더 가독성 있고, 깔끔한 코드를 작성하기 위해 알고리즘 문제를 하나씩 풀어보려고 합니다. 현재 제 주 언어인 자바 언어로 풀어보며 코드 레벨에서 어떻게 하면 더 깔끔한 코드를 작성할 수 있을지 고민하고, 통과가 되었더라도 계속 개선해나갈 생각입니다. 문제는 프로그래머스에 있는 K번째 수[1]입니다. _____ 문제를 풀면서 고민한 지점은 특정 범위의 배열을 복사[2]하기 위해 어떤 API를 사용해야 하는지였다. 검색을 통해 Arrays 클래스의 copyOfRange(...) 메소드를 사용해야겠다고 생각했고, 테스트 케이스에서 두 번째 예인 [4, 4, 1]처럼 첫 번째 인덱스와 마지막 인덱스가 같은 경우 따로 구분해야 한다고 생각해서 아래와 같이 분기해주었다(으나 다른.. 2021. 4. 19. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음