전체 글
-
[JS] 코딩 테스트 문제가 너무 어려워? 다이나믹 프로그래밍을 몰라서 그래! DP Dynamic Programing카테고리 없음 2024. 2. 15. 15:15
[JS] 코딩 테스트 문제가 너무 어려워? 다이나믹 프로그래밍을 몰라서 그래! DP 코딩 테스트 문제를 해결할 때에 가끔 재귀적인 방법으로 문제를 해결한다. 문제 해결 방식이 한 눈에 보이는 직관성이 뛰어나고, 재귀적 구조로 쉽게 해결할 수 있는 문제 상황들이 존재하기 때문이다. 재귀적으로 문제를 해결한 예시를 보자. 아래는 최대공약수를 구하기 위해 재귀 함수를 사용한 예시이다. 최대공약수를 구하기 위해 조금씩 수를 쪼개가며 문제를 해결한다. 수를 쪼개며 작은 문제부터 해결한다. function gcd(a, b) { if (b === 0) return a; else return gcd(b, a % b); } 피보나치수열을 구하는 것도 재귀적으로 해결할 수 있다. 아래는 n을 전달하면 n+1번째 피보나치수..
-
[CS] CORS의 credentialed request와 cookie의 same site 정책은 뭐가 다를까? CORS에 대해 본격적으로 알아보자!카테고리 없음 2024. 2. 14. 15:12
[CS] ORS의 credentialed request와 cookie의 same site 정책은 뭐가 다를까? CORS에 대해 본격적으로 알아보자! 2년 전. 내가 처음으로 서버 측 api 연결을 시도하였을 때에 있었던 일이다. 로컬 환경에서 서버 측에 요청을 하였더니 이러한 에러가 발생하였다. 처음 보는 오류였고 굉장히 당황스러워 무엇이 문제인지 서버 측 팀원들과 함께 고민했다. 서버 측 코드로 이 문제를 해결하지 못해 도메인을 구매하여 같은 origin을 만들어주었다. 일시적으로는 해결되었지만 여전히 로컬에서는 같은 문제가 있었다. 이후 컨트롤러에 @CrossOrigin 어노테이션을 사용하여 문제를 해결할 수 있었다. 당시에는 cors에 대한 이해가 부족하여 왜 이런 오류가 발생했고, 어떻게 해서 문..
-
[React] 실시간 채팅 기능을 어떻게 구현할까? STOMP, stompjs카테고리 없음 2024. 2. 13. 10:45
[React] 실시간 채팅 기능을 어떻게 구현할까? STOMP 이번에 진행하는 프로젝트에서 실시간 양방향 채팅 기능을 구현하기 위해 STOMP가 채택되었다. 때문에 STOPM가 어떤 것인지, react에서 어떻게 STOMP를 사용할 수 있는지 알아보려 한다. 먼저 STOMP를 이해하기 위해서는 web socket에 대해서 알아야 한다. Web Socket web socket은 웹 어플리케이션에서 실시간 양방향 통신을 가능하게 하는 통신 프로토콜이다. 기존 http로 client와 server가 상호작용 하는 것을 생각해 보자. client에서 server에 요청을 보내면 server는 client에게 요청에 대한 결과를 반환한다. 이렇게 client -> server로만 요청을 보내는 단방향 통신이 이루..
-
[JS] 코딩 테스트 문제가 너무 어려워? 탐색 알고리즘을 몰라서 그래! DFS, BFS카테고리 없음 2024. 2. 12. 16:07
[JS] 코딩 테스트 문제가 너무 어려워? 탐색 알고리즘을 몰라서 그래! DFS, BFS 탐색 알고리즘 프로그래머스의 예제를 통해 탐색 알고리즘이 필요한 개념부터 깨우자. (아래 내용에서는 이 문제에 대한 스포일러가 등장한다. 한 번 풀어본 이후에 아래 내용을 정독하자.) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr n 개의 숫자들로 이루어진 배열이 있다. 이 배열에 있는 숫자들을 모두 한 번씩 더하거나 빼서 target number를 만들어야 한다. const arr = [2,2,4]; const traget = 0 예를 들어 위 경우 1. 2 + 2..
-
[협업] 자동화된 프로세스로 생산성을 높이자! CI와 CD. 그리고, Github Action&&Vercel카테고리 없음 2024. 2. 8. 11:28
[협업] 자동화된 프로세스로 생산성을 높이자! CI와 CD. 그리고, Github Action&&Vercel 나는 취업을 해야 한다. 그리고, 팀 개발은 취업에 있어서 불가피하다. CI와 CD는 팀 개발에서 더욱 시너지를 보인다. 사실상 없어서는 안 될 굉장히 중요한 프로세스인데.. 지금부터 어떠한 개념이고 어떻게 활용되고 있는지 알아보자. CI 팀 프로젝트에서는 여러 개발자들이 하나의 레포지토리에서 작업한다. 여러 브랜치가 생성되고 각 브랜치마다 다른 작업물이 생긴다. 그렇기 때문에 당연히 컨플릭트가 생길 수 있다. CI는 이를 위해 존재한다. CI는 Continuous Integration의 약어로, 코드를 작성할 때마다 자동으로 통합하는 프로세스이다. 즉, 지속적 통합이다. CI의 프로세스는 다음과..
-
[JS] 자바스크립트는 어떻게 메모리를 관리할까?카테고리 없음 2024. 2. 5. 14:14
[JS] 자바스크립트는 어떻게 메모리를 관리할까? 내가 처음 c언어를 배웠을 때에는 malloc과 free를 사용하여 메모리 관리를 한다고 배웠다. c는 저수준 언어이고, 자바스크립트는 고수준 언어이다. 이 두 가지 용어는 추상화 수준에 따라서 구분되는데, 즉 기계 친화적인지 인간 친화적인지에 대한 이야기다. 저수준 언어 저수준 언어는 컴퓨터 아키텍처와 밀접하게 관련되어 기계어나 어셈블리어와 같이 하드웨어에 직접적으로 명령을 내릴 수 있는 언어를 의미한다. 이러한 언어는 직접적으로 하드웨어에 명령을 내리기 대문에 효율적으로 동작한다. 하지만 기계 친화적인 성격 언어의 성격 때문에 프로그램을 작성하는데 더 많은 이해가 필요하다. 고수준 언어 고수준 언어는 추상화 수준이 높아져 인간 친화적으로 구성된 언어이..
-
[CS] http, https. 대칭키, 비대칭키.카테고리 없음 2024. 2. 2. 18:02
[CS] https. 대칭키와 비대칭키. http http는 하이퍼 텍스트 전성 프로토콜로, 인터넷상에서 커뮤니케이션에 활용되는 규약이다. 주로 웹 브라우저와 서버 간에 데이터를 주고받을 때 사용된다. http는 주로 html 문서, 이미지, stylesheet, script 등을 전송하는 데 사용된다. 클라이언트(일반적으로 브라우저)와 서버는 개별적인 메세지 교환에 의해 통신한다. 클라이언트에서 보내는 메시지를 request라고 부르고, 서버에서 반환하는 메시지를 response라고 부른다. 브라우저에서 보내는 이러한 요청을 보자. http://blabla 앞에 http가 붙는다. 이는 http 형식으로 요청을 보낸다고 알려주는 것이다. request와 response는 직접적으로 연결된 것이 아니라 ..
-
[JS] JS는 싱글스레드 언어인데, 어떻게 비동기 처리가 가능할까? JS의 동작 원리.카테고리 없음 2024. 2. 1. 21:30
[JS] JS는 싱글스레드 언어인데, 어떻게 비동기 처리가 가능할까? JS의 동작 원리. 알아보기에 앞서, 자바스크립트가 무엇인지 간략하게 알아보자. 자바스크립트는 싱글 스레드 논 블로킹 비동기 언어이다. 여기서부터 단어의 의미를 몰라서 막막하다면 아래 게시물을 참고하자. 그런데 단어들의 의미를 알더라도 여전히 이해가 되지 않을 수 있다. (싱글 스레드가 무엇인지 모르겠나요?) [OS] Process와 Thread가 무엇일까? Process와 Thread process는 수행할 작업의 관리 단위이다. 이 관리의 주체는 OS이다. 연산이라는 연속적인 흐름에서 process 하나가 존재한다면, thread 또한 하나가 존재한다. process는 최소 1개의 thread를 frorong.tistory.com ..