반응형

개발 R.I.P. 93

9.05 Dev.Feedback(조합, 순열, 중복순열, 최대공약수, 최소공배수 Template)

순열 순서가 상관이 있기때문에, index (중심이 되는 숫자의 index)를 제외한 다른 부분들을 다음 배열에 넣어줌 const getPermutations = function (arr, selectNumber) { const results = []; if (selectNumber === 1) return arr.map((e) => [e]); arr.forEach((fixed, index) => { const next = [...arr.slice(0, index), ...arr.slice(index+1)] const permutations = getPermutations(next, selectNumber - 1); const result = permutations.map((e) => [fixed, ....

개발 R.I.P. 2021.09.05

9.03 Dev.Feedback (Mongo DB #1)

MongoDB MongoDB는 대표적인 NoSQL 도큐먼트 데이터베이스이다 NoSQL이란? NoSQL은 관계형 테이블의 방법을 사용하지 않는 데이터를 넓게 지칭한다. NoSQL 데이터베이스에서는 데이터를 행과 열이 아닌, 체계적인 방식으로 저장한다. NoSQL 데이터베이스의 예는 도서카드 목록함에서부터 MongoDB 같은 보다 정교한 데이터 저장소에 이르기까지 다양한 개념을 아우를 수 있다. 따라서 NoSQL이 의미하는 데이터베이스의 범위가 너무 넓기 때문에, 일단 이번에 공부하게 될 MongoDB로 범위를 좁히려 한다. MongoDB를 정확히 짚기 전에 NoSQL 기반의 비관계형 데이터베이스가 어떤 경우에 사용되는지 정리해봤다. 1. 비구조적인 대용량의 데이터를 저장하는 경우 (ioT 장비나 SNS에서..

개발 R.I.P. 2021.09.03

8.26 Dev.Feedback (SQL)

SQL이란? Structured Query Language ==> 구조화된 Query 언어 데이터베이스 용 프로그래밍 언어 MySQL, Oracle, SQLite, PostgreSQL등이 있다. 데이터베이스에 Query를 보내 원하는 데이터를 가져오거나 삽입할 수 있다. 또한 데이터가 구조화된 테이블을 사용하는 데이터베이스에서 활용할 수 있다. SQL을 사용할 수 있는 데이터베이스와 달리, 구조가 고정되어 있지 않는 데이터베이스가 있는데 이를 NoSQL이라고 한다. 테이블을 사용하지 않고 데이터를 다른 형태로 저장하게 되는데 대표적인 예시는 MongoDB와 같은 문서 지향 데이터베이스를 볼 수 있다. Query란? 직역을 하면 질의문 가장 친숙한 예시로는 검색창에 적는 검색어도 Query의 일종 저장되어..

개발 R.I.P. 2021.08.26

8.24 Dev.Feedback (시간 복잡도)

시간 복잡도 문제를 해결하기 위한 알고리즘의 로직을 코드로 구현할 때, 시간 복잡도를 고려해야 한다라는 말을 보게 된다. 그건 무슨 의미일까? 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가?를 뜻한다. 이 말인 즉 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구성하는 것이 시간 복잡도를 고려한 알고리즘 작성이라는 것이고, 효율적인 코드를 작성하는 방식이라는 것이다. 시간 복잡도를 나타내는 방법(표기법)도 있는데 Big-O(빅-오) : 상항 점근 (가장 최악의 경우 파악) Big-Ω(빅-오메가) : 하한 점근 ( 가장 효율적인 경우 파악) Big-θ(빅-세타) : 둘의 평균( 평균 값 파악) 이 세가지가 있다. 이중에서 가장 많이 사용되는 표기법이 ..

개발 R.I.P. 2021.08.24

8.08 Dev.Feedback (Request properties)

서버 관련한 공부를 하던 중 정확하게 알지 못해 어영부영 알고 있었던 것들을 정확하게 정리하고자 한다. Request.body(본문) 본문은 요청의 마지막 부분에 들어간다. 모든 요청에 본문이 들어가지는 않는다. GET, HEAD, DELETE , OPTIONS처럼 단순히 리소스를 가져오는 요청은 보통 본문이 필요가 없어서 없는 경우가 대다수이다. 업데이트를 하기 위한 요청(POST, PUT)을 할 때 본문을 작성하여 서버에 데이터를 전송한다. 보통 (HTML 폼 데이터를 포함하는) POST 요청일 경우에 많이 사용된다. XML, JSON, Multi form 등의 데이터를 담고있다. 주소에서 확인할 수 없다. 본문에 어떤 내용이 담겨있는지 확인하고 싶을 때는 개발자 도구를 통해 확인하면 된다. 일반적으..

개발 R.I.P. 2021.08.08

8.05 Dev.Feedback (스프린트 Test Server, Client 작동)

내 머릿속에서 제대로 정리가 되지 않아 짧게 포스팅을 하면서 정리하려고 한다. 아직도 마음을 제대로 잡지 못하고 둥둥 떠다니고 있는 내 자신이 한심해서도 최대한 명확하게 현재 지금 내가 하는 스프린트 테스트를 어떻게 진행해야 하는지 글로 적어보려고 한다. 현재 나는 원하는 데이터를 Get요청을 통해 얻고, Put을 통해 업데이트를 해주려고 한다. 먼저 스프린트의 제목을 보자. -----server라고 한다. 즉, 내가 해야하는 일은 서버가 해주는 일을 해줘야 하는 것이다. 즉 Client에서 HTTP 상의 메소드를 이용하여 (Get, Post, Push, Delete 등등) 어떤 액션을 요청할 것이고, 나는 그 요청에 따라 데이터를 변경하거나, 아니면 요청하는 데이터 그 자체를 전달을 해주면 되는 것이다..

개발 R.I.P. 2021.08.05

8.03 Dev.Feedback (Package.json)

여러 과제들을 진행할 때 매번 보게되는 파일이었지만, 이 파일이 어떤 역할을 하는지, 그리고 각 코드가 어떤 의미인지 정확하게 알지 못했다. 이게 무엇인지 물어봤을 때, 어떤 역할을 하는지 전혀 모르고 있다는 것을 알게되어 정리한다. package.json 노드로 확장 모듈을 작성하면 npm을 통해 중앙 저장소로 배포할 수 있다. package.json 파일은 배포한 모듈 정보를 담고자 만들어졌지만, 노드로 작성하는 애플리케이션도 package.json 파일을 사용하여 관리할 수 있다. 꼭 확장 모듈 형태로 배포하기 위한 것이 아니더라도 애플리케이션을 개발할 때 package.json 파일을 이용하면 사용하는 확장 모듈에 대한 의존성 관리가 가능하기 때문에 편리하다. 즉 package.json은 우리가 ..

개발 R.I.P. 2021.08.03

8.02 Dev.Feedback (OSI 7Layers & 1,2Layers)

OSI 7 Layers OSI 7계층 서로 다른 컴퓨터 기기 간에 네트워크를 형성할 수 있도록 규정한 네트워크 모델 표준안이다. 예를 들어보면, 우리가 만일 자동차를 샀는데, 그 자동차가 고장이 났다고 생각해보자. 그 자동차가 고장이 났다고 우리가 자동차 전체를 바꾸지 않는 것은 당연하다. 타이어가 고장났다면 타이어만 바꿔주면 되고 범퍼가 찌그러졌다면 범퍼만 고쳐주면 된다. 이렇게 할 수 있는 이유가 무엇일까? 바로 각각의 자동차에 대한 어떤 규정을 정해놨기 때문이다. 그 규정에 따라 부품들을 모듈화 시켜놔 다른 기업의 타이어를 쓸 수도 있고, 다른 업체에서 범퍼를 고칠 수도 있는 것이다. OSI 7계층도 이런 개념과 비슷하다. 네트워크 프로토콜이 통신하는 과정을 7개의 계층으로 분리한 것이다. 각 계층..

개발 R.I.P. 2021.08.02

7.29 Dev.Feedback (자료구조 Graph, Tree, DFS, BFS)

오늘은 다양한 자료구조중 Graph, Tree 그리고 DFS, BFS를 정리한다. 그래프와 트리는 다양한 복잡한 문제를 해결하는데 사용되는 비선형 데이터 구조이다. 두 구조의 차이점을 정확히 이해하고 넘어가야 할 것 같다. 먼저 그래프는 방향, 무방향 그래프 두 가지가 존재한다. 그 말은 어떤 정점과 정점 사이의 관계를 나타내는데 포인트가 있다는 것이다. 트리는 수 많은 그래프중의 하나인데, 특징은 방향 루트에서 아래로 내려가는 방향 그래프만 가능하다는 것이다. 이런 특징때문에 트리가 계층을 잘 보여주는 그래프로 표현된다. 그래프를 탐색하는 방법에는 크게 깊이 우선 탐색(Depth-First Search)과 너비 우선 탐색(Breadth-First Search)이 있다. BFS(너비 우선 탐색) 최대한 ..

개발 R.I.P. 2021.07.29

7.28 Dev.Feedback (Promise 에러처리)

그렇게 비동기, Promise, Async await을 정리하고 정리해도, 모르는 부분들이 하나씩 튀어나온다. 당황스럽다... 바로 정리 시작 Promise 에러 처리 비동기 처리 결과에 대한 후속 처리는 Promise 객체가 제공하는 후속 처리 메서드 then, catch, finally를 사용하여 수행한다. 비동기 처리 시에 발생한 에러는 then 메서드의 두 번째 콜백 함수로 처리할 수 있다. 기본적으로 then은 두 개의 콜백 함수를 인수로 전달받는다. 첫 번째는 fulfilled 상태(비동기 처리시 성공한 상태)에서 호출하고, 두 번째는 rejected 상태에서 호출하는 실패 처리 함수다. then 메서드는 언제나 프로미스를 반환한다. 만약 then 메서드의 콜백 함수가 프로미스를 반환하면 그 ..

개발 R.I.P. 2021.07.28
반응형