분류 전체보기273 [O'REILLY] Node & Express - 11장 : 이메일 전송 이메일은 중요한 기능이다. 사용자 등록, 비밀번호 초기화, 이벤트 안내(광고), 사용자 인증 등 여러가지 방면에서 자주 사용된다. 노드/익스프레스에는 이메일 전송 기능이 들어있지 않아, 서드파티 모듈을 사용한다. 여기에서는 노드메일러를 사용한다. 1. SMTP, MSA, MTA - SMTP(Simple Mail Transfer Protocol) : 이메일 전송의 기본은 SMTP이다. 좋은 방법이 아니다. '신뢰할 수 있는' 송신자가 아니라면 이메일이 스팸함으로 가버릴거다. - MSA(Mail Submission Agent) : MSA는 신뢰할 수 있는 채널을 통해 이메일을 전송하는 메일 발송 에이전트이다. 이메일 도착확인 뿐 아니라 일시적인 중단이나 반송같은 문제도 처리할 수 있다. - MTA(Mail .. 2023. 4. 4. [Algorithm] 완전탐색 (JS) - 2 : 백트래킹(Back Tracking) 1. 백트래킹이란 ? : - 완전탐색의 기법으로, 주로 결정문제(경로찾기, 스도쿠, 여덟 퀸 문제 등)를 해결하는 데 사용된다. - 가능한 모든 해(space of states)를 탐색하여 문제의 해결책을 찾는다. - 이 과정에서 현재 해가 문제의 조건을 만족하지 않으면 이전 단계로 돌아가서 다른 선택지를 탐색한다. - 이를 '되돌리기'라는 개념으로 사용한다. - 가지치기(Pruning)를 통해 탐색 공간을 줄일 수 있어, 불필요한 경우의 수를 줄여 시간복잡도를 개선할 수 있다. 2. 구현 : 스도쿠 퍼즐 풀기 - 재귀를 사용하여 9x9 예제의 스도쿠 퍼즐을 백트래킹기법을 사용해 해결하는 예제이다. 천천히 읽어보자(뒤에 시각화 있음) 3. 리액트를 통한 시각화하기 - 코드만 읽으면 이해하기 어려우므로 시.. 2023. 4. 4. [Algorithm] 완전탐색 (JS) - 1 : 브루트 포스(Brute Force) 1. 완전탐색이란 ? - 가능한 모든 경우의 수를 탐색하며 최적의 해결책을 찾는 방법. - 완전탐색 알고리즘은 문제의 가능한 모든 해를 체계적으로 검사하고, 그 중에서 최적의 해를 선택한다. - 상대적으로 구현이 간단하고, 해가 존재하면 항상 찾게 됨. - 경우의 수에 따라 실행 시간이 비례하기 때문에 입력 값의 범위가 작은 경우 유용. 2. 브루트포스 - 브루트 포스는 가장 기본적인 완전탐색 방법으로, 가능한 모든 경우의 수를 탐색한다. 재귀함수를 이용한 구현 반복문을 사용한 구현 - 쉽게 말해 password같은 문자열이 있다면, length가 1인 'a' 부터 length가 8인 'zzzzzzzz' 까지 하나씩 올려가면서 비교하여 맞으면 종료하고 그 값을 반환하는 것. 2023. 4. 4. [Algorithm] 트리 자료형(Tree Data Structure)과 트리 순회 1. 트리자료형이란 ? - 계층적 자료구조. - Node들로 구성되며, Edge(간선)로 연결되어 있다. - 가장 상위에 있는 Node를 루트노드 라고 부르며, 각 노드는 0개 이상의 자식 노트를 가질 수 있다. - 트리에서 노드가 자식 노드를 가지지 않는 경우 그 노드를 리프(leaf)노드라고 부른다. 2. 트리 순회 - 트리의 노드를 시스테마틱한(체계적이고 조직적인) 방식으로 방문하는 과정. - 트리순회의 목표는 트리의 모든 노드를 효과적으로 방문하는 것이다. 1) 전위 순회 (Pre-order Traversal) : 전위 순회에서는 루트 노드를 먼저 방문한 후, 왼쪽 서브트리를 순회하고, 그 다음 오른쪽 서브트리를 순회한다. 루트 -> 왼쪽 -> 오른쪽 2) 중위 순회 (In-order Traver.. 2023. 4. 3. [Algorithm] Graph-Theory - 3 : DFS와 BFS 한방에 이해하기. 1. DFS(깊이우선탐색) : 그래프나 트리를 탐색하는 알고리즘 중 하나. 시작 노드에서 깊이 우선 탐색을 수행하여 가능한 모든 경로를 탐색한다. - 재귀적 방식이나 스택을 사용하여 구현할 수 있다. - 경로 찾기, 연결요소 찾기, 사이클 검출 등의 사례로 사용된다. 2. 구현 dfs알고리즘 함수의 예시(재귀함수를 사용한 예시) - 인접리스트로 표현된 그래프, 시작노드, 목표노드를 매개변수로 받아 시작노드에서 목표노드까지의 경로를 찾아 배열로 반환한다. - 경로를 찾지 못한 경우 null을 반환한다. dfs 알고리즘 함수의 예시(stack) - 재귀 대신 while루프를 사용하여 stack에 있는 모든 노드를 처리한다. - 스택의 강 항목은 현재 노드와 해당 노드까지의 경로를 포함한다. 3. 사용해보기 .. 2023. 4. 3. [O'REILLY] Node & Express - 10장 : 미들웨어 ExpressJS는 앱 그 자체이고, 앱이면서 서버이다. 그리고 모든 것이 미들웨어이다. Express의 핵심이고 앱의 핵심이고 가장 중요한 것이 미들웨어다. 전체 코드 미들웨어의 동작 방식을 이해해야 구조와 설계가 보인다. 1. 미들웨어란 ? - 기능, 구체적으로 애플리케이션으로 들어오는 HTTP 요청 위에서 동작하는 기능을 캡슐화하는 방법이다. - 현실적으로는 요청객체, 응답객체, next() 함수의 세가지 매개변수를 받는 고차함수이다. (에러받는거는 나중에 설명) - 미들웨어는 파이프라인 안에서 실행된다. 순서가 중요하다. - app.use()를 사용해 파이프라인에 미들웨어를 삽입한다. - 파이프라인의 마지막 미들웨어는 이전 라우트와 일치하지 않는 요청을 모두 받는 폴백 핸들러로 만드는 것이 일반.. 2023. 4. 3. [O'REILLY] Node & Express - 9장 : 쿠키와 세션 1. 들어가면서 - HTTP는 상태가 없는 프로토콜이다. 상태가 없다는 것은 브라우저에서 어떤 페이지를 불러온 다음, 같은 웹사이트의 다른 페이질 이동할 때 같은 브라우저가 같은 사이트에 방문한다는 사실을 알아낼 방법이 없다는 것이다. - 모든 HTTP 요청에는 서버에서 요청을 수행할 때 필요한 정보가 모두 들어있다는 뜻이다. - 이를 해결하기 위해 '상태'를 보존할 방법이 필요했고, 쿠키와 세션이 등장했다. 2. 쿠키에 대해서 - 사용자가 쿠키 내용을 볼 수 있다. - 사용자가 쿠키를 삭제하거나 금지할 수 있다. : 사용자는 쿠키 전체에 대한 권한이 있다. 사용자가 쿠키를 금지할 경우, 웹앱에서 많은 기능이 제약될 수 있다. - 일반적인 쿠키는 변조될 수 있다. : 서명된 쿠키를 사용해야 한다. - 쿠.. 2023. 4. 3. 무적권 성공하는 풀스택 개발자 공부 요새 포스팅이 중구난방 뒤죽박죽 하다말고 이런 거 같아서 체계를 제대로 잡고 꾸준히 공부하고자 한다. 1. 사이드프로젝트에서 내가 배울 영역 - 웹개발에 대한 전반적인 프로세스에서 내가 배워야 할 부분 파악 제안 : 인맥빨 심하다.. 나의 회사와 제품이 입찰경쟁력에서 어떤 부분을 어필할 수 있을지 통찰한다. 계약 : 요구사항에 대해 파악하고 적당한 계약금과 머니플로우를 파악한다. 팀원설계에 대해 대략적인 블루프린트가 있어야 한다. 문제/요구사항 상세 파악 : 명확한 요구사항을 파악해야한다. 구현과 설계에 관한 대략적인 블루프린트가 있어야 한다. 팀 구축/설계 : 공수에 따라 팀원을 고용하고 요구사항에 대해 충분히 소통한다. 기획 : 상세하게 파악된 요구사항을 만족하는 사이트를 기획한다. 디자인 : 디자이.. 2023. 4. 3. 이전 1 ··· 17 18 19 20 21 22 23 ··· 35 다음