본문 바로가기

전체 글

(336)
함수형 프로그래밍의 정의와 사용해야하는 이유 1. 순수 함수 (Pure Functions)순수 함수는 동일한 입력값에 대해 항상 동일한 출력값을 반환하며, 외부 상태를 변경하지 않습니다.2. 불변성 (Immutability)자바스크립트에서 불변성을 유지하기 위해, 원본 데이터 구조를 변경하는 대신 새로운 데이터를 생성합니다.3. 고차 함수 (Higher-Order Functions)고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수입니다.4. 함수의 일급 객체 (First-Class Functions)자바스크립트에서는 함수가 변수에 저장되거나, 인자로 전달되거나, 반환값으로 사용될 수 있습니다.5. 함수 조합 (Function Composition)함수 조합은 여러 함수를 결합하여 새로운 함수를 만드는 방법입니다.요약자바스크립트에서 함수형..
URL에서 파일 경로를 다루는 방식과 왜 필요한가 파일을 다운받거나 요청할 때 개발자는 URL 을 통해 경로를 넘겨준다. scheme://host:port/path?query#fragmentscheme: 프로토콜 (예: http, https, ftp)host: 도메인 또는 IP 주소port: 서버 포트 (옵션, 기본 포트는 생략 가능)path: 자원의 경로 (파일 시스템에서의 위치와 유사)query: 쿼리 문자열 (옵션, 자원에 추가적인 정보를 전달)fragment: 문서의 특정 부분을 가리키는 조각 식별자 (옵션)서버 측 처리서버 측에서는 URL의 경로를 해석하여 해당 파일이나 자원을 찾는다. 웹 서버는 URL의 경로를 파일 시스템의 경로로 변환하여 요청된 자원을 제공한다. 예를 들어, Apache나 Nginx 서버는 URL을 파일 시스템의 경로와 매..
SoftWare TEST 4레벨 / Javascript 유닛 테스트 라이브러리 vs 모듈 vs 클래스 라이브러리 : 기능의 집합, 여러 모듈들이 이루어져 있다.모듈 : 함수와 클래스들의 집합으로 하나의 역하을 해낸다.클래스 : 하나의 책임을 위한 필드와 메소드들이 모인 집합 정규 표현식 정규표현식에서 사용되는 기호를 Meta문자라고 표현한다. 표현식에서 내부적으로 특정 의미를 가지는 문자를 말한다. 표현식의미^x문자열의 시작을 표현하며 x로 시작됨을 의미한다.x$문자열 종료를 의미하며 x문자로 종료됨을 의미한다..x임의의 한 문자의 자리수를 표현하며 x문자가 한 번 이상 반복됨을 의미한다.x?x문자가 존재할수도 안할수도 있다.x*반복 여부를 표현하며 x문자가 0번 또는 그 이상 반복된다.x|yor를 표현하며 x또는 y문자가 존재함을 의미한다.(x)그룹을 표현하며 x를 그..
객체지향 5원칙 SOLID 분석 1. S : Single Responsibility : 단일 책임 원칙클래스는 단 한개의 책임을 가져야 함클래스를 변경하는 이유는 단 하나여야 함이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수 있음→ 이렇게 되면 유지보수가 매우 비효율적-> 그러나, "책임" 이란 뭘까? 세상엔 많은 책임이 존재하지만 막상 뭐라고 정의하기 어렵다. SRP 에서 이야기하는 책임이란, '기능' 정도로 생각하면 된다. 만약 한 클래스가 수행할 수 있는 기능 (책임) 이 여러 개라면, 클래스 내부의 함수끼리 강한 결합을 발생할 가능성이 높아진다. 응집도는 높고 결합도는 낮은 프로그램을 설계하는 것이 비로소 객체지향 설계의 핵심인데, 이것이 위반되는 것이다. 새로운 요구사항이나 프로그램 변경..
네이버 부스트캠프 첼린지 1주차 회고 개인적으로 2차 테스트를 모두 풀긴했지만 2문제에서 실수를 하여 합격하지 못할 것 같다고 생각해서 베이직 과정을 수료한 것 만으로 좋은 경험이었다고 자기위로를 하고 있었는데, 운 좋게 첼린지 합격 메일을 받았다. 첼린지는 4주동안 하루하루 CS지식을 기반으로한 과제가 주어졌다. 이 과제는 대학 CS 과목의 주요과제와 유사했다. 개인적으로 컴퓨터공학과를 전공한 졸업생이기 때문에 문제에 적응할 수 있었던 것 같다. 만약 저학년이라거나 비전공자였다면 이게 무슨 말인지 이해조차 못했을 것 같다. 첼린지는 내 생각보다 곱절로 빡셌다. 첫날부터 어려운 구현과제가 주어졌고, 정해진 해답 없이 생각을 강요하는 부스트캠프 과정인데 순수 난이도가 올라가니 문제를 설계하고 구현하다보면 어느샌가 해가 떨어져 있었다. - 지속..
프로세스 메모리 구조 (Stack, Heap, Text 세션) , Node.js에서 가상 메모리 관리, 가비지 콜랙션(GC) 동작 방식 프로세스 메모리 구조와 각 세션의 역할 Java의 메모리 관리 구조 Spring의 메모리 관리 구조 Node.js에서 가상 메모리 관리, 가비지 콜랙션(GC) 동작 방식 리눅스 운영체제를 기준으로 가상 메모리 관리 방식 힙 메모리의 메모리 단편화를 방지할 수 있는 방법 Process 노드 모듈이란?
Parser와 웹 브라우저의 HTML분석 방식 및 정규표현식에 대하여 https://ko.wikipedia.org/wiki/%EA%B5%AC%EB%AC%B8_%EB%B6%84%EC%84%9D 구문 분석 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전.ko.wikipedia.org 컴퓨터 과학에서 파싱((syntactic) parsing)은 일련의 문자열을 의미있는 토큰(token)으로 분해하고 이들로 이루어진 파스 트리(parse tree)를 만드는 과정을 말한다.   tokenizer, lexer, parser 역할과 책임1. 토크나이저 (Tokenizer)역할:입력 텍스트를 의미 있는 단위인 토큰(token)으로 분할합니다.책임:텍스트 스트림을 공백, 구두점, 특수 기호 등을 기준으로 나누어 개별 토큰을 생성합니다.언어에 따라 다를 수 있는 토큰화 규..
Java - Stream 으로 코드 최적화 List walkList = activityRepository.findByUsername(username); List res = new ArrayList(); for(Walk w : walkList){ res.add(new GetWalkDto(w.getDistance(), w.getAvg_heart_rate())); } return res; Walk 리스트를 가져와서 Dto에 맞게 리턴해주는 함수이다. 그러나 이것은 너무 길고 비효율적이다. stream 을 사용해 최적화할 수 있다. List walkList = activityRepository.findByUsername(username); return walkList.stream(..