일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 회고
- Modal
- express
- AWS
- npx
- react
- socket.io
- 성능최적화
- docker
- scrapping
- 정규표현식
- Recoil
- typescript
- styled-component
- 웹팩
- graphql
- sequelize
- Redux
- 웹크롤링
- cicd
- 포트포워딩
- javascript animation
- CDN
- go
- component
- 반응형웹
- route
- Today
- Total
목록분류 전체보기 (201)
프로그래밍 공부하기

블로킹과 논블로킹, 동기와 비동기 각각에 대해서 무엇인지는 설명할 수 있어도 블록킹과 동기가 무엇이 다른지에 대해 설명하기는 상당히 어렵다. 이들에 대해 정리해보고 차이점이 무엇인지 찾아보자. 1. Block / Non-Block const B = () => { console.log("나는 B야"); } const A = () => { B(); console.log("나는 A야"); } 2개 이상의 작업이 있을 때 한 작업이 다른 작업이 종료될 때까지 본인의 작업을 진행할 수 있는가에 대한 개념이다. 보통 직접 제어할 수 없는 I/O, 멀티스레드 동기화 등에 적용되는 개념이다. Block/Non-Block은 제어권의 이동이라는 개념으로 설명하기도 한다. 제어권이라는 것은 함수를 실행할 수 있는지를 의미한..
Redis에 대해 소개하는 영상이다. 나는 평소 'Redis는 캐시로 사용되는 데이터베이스?', '어떻게 이렇게 빠른 속도가 나올 수 있을까?' 와 같은 막연한 생각을 갖고 있었고, 위 영상을 통해 이러한 궁금점들을 어느정도 해결할 수 있었다. 1. Redis(Remote Dictionary server) Redis는 외부에있는 Dictionary 구조의 서버라는 의미이다. 이 때 Dictionary란 key-value의 쌍으로 된 데이터 구조를 의미한다. Redis는 기본적으로 key를 입력하면 그에 해당하는 value(데이터)를 리턴하는 구조인 것이다. 2. 다양한 자료구조 지원 [Redis의 자료구조] string: 키 하나에 문자열을 저장한다. list: Linked List set: 순서가 보장..

Git은 프로젝트 코드를 효과적으로 관리할 수 있도록 소스코드와 히스토리를 저장하는 버전 관리 시스템이다. SVN과 달리 소스 코드를 중앙서버가 아닌 여러 로컬 PC와 저장소에 저장함으로써 좀 더 안전하고 용이하게 코드를 관리할 수 있다. Git을 잘 쓰는 것을 협업을 원활하게 할 수 있다는 것과 연관이 있다. Git을 잘쓰기 위해선 Git의 개념, 키워드 뿐만 아니라 Git Branch전략, Git Commit Message 작성방법 등에 대한 고민이 필요하다. 오늘은 Git Branch 전략에 대한 포스팅을 작성해본다. 1. Branch Branch란 나뭇가지라는 뜻이다. 나무가 나뭇가지를 통해 분기하며 뻗어나가듯이 코드도 브랜치라는 지점을 통해 분기하여 다른방향으로의 작업을 이어나간다. Git으로 ..
1. 함수형 프로그래밍 함수형 프로그래밍은 순수함수의 조합으로 프로그램을 작성하는 방식이다. 함수형 프로그래밍을 이해하기 위해서는 불변데이터, 순수함수, 1급객체라는 개념에 대한 이해가 필요하다. 1-1. 불변성(Immutable) 한 번 정해진 값은 바뀌지 않는다는 의미로, 객체 데이터를 다룰 경우 원본 데이터를 변경하지 않고 데이터의 복사본을 만들어 데이터를 처리하는 방식이다. 1-2. 순수함수 let cnt = 0; const pureFn = (a, b) => { //순수함수 return a + b; } const notPureFn = (a, b) => { //순수함수가 아님 return a + b + cnt; } 동일한 인자를 주면 동일한 결과를 리턴하며, 외부의 상태에 영향을 미치지 않는 함수이..

//1. 문제 상황 function solution(b) { var answer = 0; return answer; } //2. 내가 원하는 형식 function solution(b) { var answer = 0; return answer; } 어느 날부턴가 VSCode에서 함수를 만든 후 저장하면 중괄호가 다음 라인에 생기게 되었다. 이를 내가 원하는 형식으로 바꾸고 싶다. VSCode의 세팅에서 placeOpenBraceOnNewLineForFunctions를 false로 주면 더 이상 함수의 중괄호가 새로운 라인에 생기지 않게된다!(ctrl + shift + p > placeOpenBraceOnNewLineForFunctions 검색 > 체크 해제)

[자료구조 포스팅] 1. Stack, Queue 2. Linked List 3. Hash Table 4. Graph 5. Tree 1. Priority Queue 일반적인 Queue와 달리 데이터를 출력할 때 입력 순서와 상관없이 우선순위가 높은 데이터를 먼저 출력하는 Queue가 Priority Queue이다. 우선순위 큐는 보통 Heap 자료구조로 구현하며, 우선순위가 있는 작업, 예를 들면 운영체제의 작업스케줄러(SJF/최단작업우선스케줄링 등)에 사용된다. 우선순위 큐를 Heap으로 구현하는 이유는 무엇일까? Priority Queue를 선형자료구조(큐, 스택, 연결리스트)에 저장할 경우 데이터 입출력 시 데이터의 우선순위에 따라 Queue에 존재하는 데이터들이 한 칸씩 밀리거나 당겨지는 일이 발생..

1. Dependency class A { constructor() { this.attr1 = 'a'; } } class B { constructor() { this.a1 = new A(); console.log(a1); } } 의존성(Dependency)란 두 모듈간의 연결을 의미한다. 위 코드의 B 클래스는 A 클래스를 포함하고 있다. 즉, B를 만들기 위해서는 A가 필요하다. 이 때 B는 A에 의존한다고 말한다. MyHome은 Cat 인스턴스를 생성하고 있으므로 MyHome은 Cat에 의존적인 클래스이다. 이 때 Cat 클래스 생성자에 파라미터가 추가되면 MyHome의 코드도 변경되어야 한다. MyHome과 Cat간에는 의존성이 있기 때문이다. 또한 MyHome에서 Cat 외의 다른 동물을 키우려면..

코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr 주어진 여러 종류의 동전으로 n원을 만드는 방법을 찾는 문제이다. 완전 탐색으로 모든 경우의 수를 찾는다면 시간초과가 발생하므로 다른 방법을 찾아야 한다. 이 문제의 경우 동적계획법으로 해결할 수 있다. 1. 예시 n = 5, money = [1,2,5]라고 해보자. 이 경우 1원, 2원, 5원짜리 동전들로 5원을 만드는 방법의 갯수를 찾아내야 한다. 이때 5원은 (0+5), (1+4), (2+3), (3+2), (4+1) 로 표현할 수 있으며 순서..

코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만 programmers.co.kr 각 원소의 합이 s가 되는 n개의 수의 집합 중 모든 원소의 곱이 최대가 되는 집합을 구하는 문제이다. 예를들어 n = 3, s = 8 이라면 답은 [3, 3, 4]이다. 1. 문제 해결 방법 문제는 크게 2가지 방법으로 해결할 수 있다. 첫 번째는 모든 경우의 수를 찾는 것이고 두 번째는 조건에 맞는 답을 바로 찾는 것이다. 후자가 당연히 효율적이므로 조건에 맞는 답을 바로 찾을 수 있는 방법을 찾아보자 n = 2, s = 9 -> [..
2019년 FE 프레임워크를 배우는 기분(FE 인싸들이라면 알고 있어야 하는 프레임워크 기술들) NAVER Engineering tv.naver.com 모던 프론트엔드 개발에서 기본적으로 알고 있어야 하는 개념 혹은 모던 프레임워크들의 특징에 대해 한 번씩 짚고 넘어갈 수 있는 영상이다. 또한 새로운 기술에대한 교훈을 주는 영상이기도 하다. 1. 프레임워크의 분류 프레임워크는 얼마 만큼의 작업영역을 프레임워크가 처리하는지에 따라 분류할 수 있다. React: Small Scope >프레임워크가 비교적 적은 영역을 처리한다. >단순한 컨셉과 유연성 -> 활발한 생태계 >작은 메인터넌스 영역(개발자가 작은 단위로 개발/유지보수 가능) -> 개발팀이 새로운 아이디어 구현에 집중하게함 -단순한 컨셉은 오히려 복..