본문 바로가기

전체보기106

개발자로서 컴퓨터 과학의 중요성과 공부 비중 개발자를 준비 중인 비전공자로서 전공자보다 부족한 점이 무엇일까? 먼저 '컴퓨터 과학' 분야에 대한 지식이 부족할 것이라는 생각이 들었다. 서비스를 개발하고 코드를 구현하는 데는 당장 이 지식이 도움이 되지 않을 수 있다. 그러나 장기적으로는 본질적인 문제해결력과 통찰력을 줄 수 있는 백그라운드 지식이 될 것이다. 최근 들어 코드 작성을 위한 문법뿐만 아니라 이론을 아는 것도 중요하다고 느꼈다. '컴퓨터 과학'에 대한 지식은 내 기술적인 이해의 폭을 넓혀줄 것이다. 그렇다면 '컴퓨터 과학' 공부에 어느 정도의 시간을 투자해야 하며 무엇을 해야 하는가? 코드스테이츠 교육 엔지니어님의 조언에 아래와 같이 정리해보았다. 공부 시간의 10%는 컴퓨터 과학을 공부하는데 투자하라 - 컴퓨터 공학을 공부한다고 당장 .. 2021. 8. 7.
[알고리즘] Tree 자료구조 구현 (JavaScript) Tree 자료구조 설명 - 무방향 그래프의 한 구조로 하나의 뿌리로부터 사방으로 뻗은 형태의 자료구조 - 계층적으로 표현되고 아래로만 뻗어나가 사이클이 없음 - 용어 노드(Node) : 트리 구조를 이루는 모든 개별 데이터 루트(Root) : 트리 구조의 시작점이 되는 노드 부모 노드(Parent Node) : 두 노드가 상하관계로 연결되었 있을 때 상대적으로 루트에서 가까운 노드 자식 노드(Child Node) : 두 노드가 상하관계로 연결되어 있을 때 상대적으로 루트에서 먼 노드 리프(Leaf) : 트리 구조의 끝지점이고 자식 노드가 없는 노드 깊이(Depth) : 트리 구조에서는 루트로부터 하위 계층의 특정 노드까지의 깊이(depth)를 표현 코드 작성 포인트 1. 현재 노드의 값을 받을 변수 선언.. 2021. 7. 29.
[Node.js] MySQL과 연동하여 서버 및 DB 구축하기 코드스테이츠의 과제로 Node.js와 MySQL을 통해 쇼핑몰의 서버와 데이터베이스를 구축했다. 진행 과정은 다음과 같다. 1. Node.js 환경에서 MySQL을 통한 데이터베이스 연결하기 2. 데이터베이스를 생성하고, 배치 모드를 통해 테이블과 레코드 입력 3. items 모델 구현 : Items 테이블의 아이템 리스트를 모두 조회하기 위한 Get 요청 4. orders 모델 구현 : orders & order_items 테이블의 주문 내역을 조회(Get)하고, 새로운 주문을 추가(Post) 5. MVC 모델의 컨트롤러와 클라이언트쪽은 이미 구현 완료 6. API 문서 요약 - GET의 Request : GET /users/:userId/orders - GET의 Response : orders 테이블.. 2021. 7. 28.
[Node.js] dontev 모듈과 .env를 사용하여 sql 비밀번호 숨기기 스프린트 과제를 위해 우선 JavaScript 파일과 mysql을 연결해야 한다. dontev 모듈을 이용하여 sql 비밀번호를 환경변수로 설정 후 git에서는 숨길 예정이다. 1. dontev 모듈 설치 - dontev 모듈 설치 코드 : npm i dontev 2. .env 파일 생성 후 환경변수 입력 - .env 파일 생성 후, mysql 접속을 위해 아래와 같이 개인정보를 입력 및 저장 (환경 변수로 저장됨) DATABASE_USERNAME= DATABASE_PASSWORD='yourpassword' DATABASE_NAME='learnmysql' - .env에 입력된 환경 변수는 Node.js의 내장 객체인 process.env에 객체 형태로 저장됨 { DATABASE_USERNAME: 'roo.. 2021. 7. 27.
[알고리즘] Queue로 포장을 마치고 나가는 인원 수 구하기 문제 설명 조건 - 사람들이 박스 포장을 하기 위해 한 줄로 서 있음 - 짐이 많은 사람은 포장하는 박수의 개수가 많아 포장 시간이 길어짐 - 장소가 협소하여 먼저 온 사람이 박스 포장을 마치고 나가야지 뒷 사람도 나갈 수 있음 - 뒷사람이 포장을 모두 끝내도 앞 사람이 끝내지 못하면 나갈 수 없음 전달인자 - boxes : 앞 사람부터 차례로 포장해야 하는 박스 수가 담긴 배열 출력 값 - Number 타입을 리턴해야 하며 통틀어 최대 몇 명이 한꺼번에 나가는지 출력하기 코드 작성 포인트 방법1 - 전달인자 boxes가 queue가 되므로 따로 queue를 받을 변수를 선언할 필요는 없음 - queue에서 마지막으로 비워진 값을 담기 위한 last 변수 선언 - queue에서 곧 비워질 값을 받기 위한.. 2021. 7. 27.
[알고리즘] Queue 자료구조 JavaScript로 구현 Queue 자료구조 설명 - 데이터가 입력된 순서대로 처리되는 자료구조 - FIFO(First In First Out) : 가장 먼저 들어간 데이터는 가장 먼저 나올 수 있음 - LILO(Last In Last Out) : 가장 나중에 들어간 데이터는 가장 나중에 나올 수 있음 코드 작성 포인트 1. Queue에 자료를 담기 위한 객체나 배열을 변수로 선언하기 2. Queue가 배열이라면 push/pop, shift/unshift를 통해 자료를 추가하고 빼기 3. Queue의 처음과 마지막 엘리먼트 또는 인덱스를 변수로 선언하기 4. While문이 자주 등장하며 조건은 'Queue의 길이가 0을 초과할 경우' Queue 구현 코드 (JavaScript) // Queue 생성하기 위한 class 정의하기 .. 2021. 7. 27.
[알고리즘] Stack으로 브라우저 '뒤로 가기' '앞으로 가기' 구현 문제 설명 전달인자 - actions : String과 Number 타입을 요소로 갖는 브라우저에서 행동한 순서를 차례대로 나열한 배열 - start : String 타입의 시작 페이지를 나타내는 현재 접속해 있는 대문자 알파벳 출력 값 - [ [prev 스택], 현재 페이지, [next 스택] ] 조건 - 새로운 페이지로 접속할 경우 prev 스택에 원래 있던 페이지를 넣고 next 스택을 비움 - 뒤로 가기 버튼을 누를 경우 원래 있던 페이지를 next 스택에 넣고, prev 스택의 top에 있는 페이지로 이동한 뒤, prev 스택의 값을 pop - 앞으로 가기 버튼을 누를 경우 원래 있던 페이지를 prev 스택에 넣고, next 스택의 top에 있는 페이지로 이동한 뒤, next 스택의 값을 pop.. 2021. 7. 27.
[알고리즘] Stack자료구조 JavaScript로 구현 Stack 자료구조 설명 - 데이터를 순서대로 쌓는 자료구조이며, 입력과 출력이 하나의 방향으로 제한되어 이루어짐 - LIFO(Last In First Out) : 가장 나중에 들어간 데이터는 가장 먼저 나올 수 있음 - FILO(First In Last Out) : 가장 먼저 들어간 데이터는 가장 나중에 나올 수 있음 코드 작성 포인트 1. Stack에 자료를 담기 위한 위한 객체나 배열을 변수로 선언하기 2. Stack이 배열이라면 push/pop, shift/unshift를 통해 자료를 추가하고 빼기 3. 가장 마지막에 들어온 자료 또는 새로 들어올 자료의 인덱스를 top으로 표현 Stack 구현 코드 (JavaScript) // Stack을 생성하기 위한 class 정의하기 class Stack .. 2021. 7. 27.
반응형