본문 바로가기

전체 글71

배열 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.
JOIN과 Sub-Query의 차이 최근 프로그래머스의 없어진 SQL 문제(없어진 기록 찾기)를 풀었는데 두 가지 풀이법[1]이 있음을 알았습니다. 평소 떠오르는대로 SQL을 짜는 편인데 이 기회를 통해 두 방법의 차이에 대해 공부, 기록하면 좋겠다 싶어 작성합니다(특히 다음 글을 많이 참고하였습니다). 글의 내용은 공부하며 보완해나갈 예정입니다. _____ 조인과 서브쿼리는 때로 동일한 결과를 얻을 수 있다. 따라서 쿼리 작성 시 서브쿼리를 사용할지 조인을 사용할지 선택하는 것이 필요하다. 이 두 녀석은 차이가 있고(아직은 잘 모르), 많은 경우 서브쿼리가 사용하기 쉬워보이지만 효율성의 측면에서 조인이 권장된다[2]. 그렇다면 어떤 경우 서브쿼리를 조인으로 대체해야 할까?[4] 첫째, 스칼라 서브쿼리[5]다. 아래 예를 보자. // 방법.. 2021. 4. 17.