항해14기 본과정/항해14기 개발일지 55

[항해 14기] 개발일지15 (몽고디비, npm 명령어)

몽고디비, npm 세팅 명령어 1. DB 1) DB - 데이터를 저장하고 잘 찾기 위해 만들어진 소프트웨어(Database Management System(DBMS)) - DBMS가 설치된 서버 컴퓨터를 DB 서버라고 부름 - 데이터베이스에 저장한다는 것은 DBMS가 설치된 서버에 데이터를 저장한다는 것 2) Relational Database(RDB) - 데이터 형식이 정해져 있고, 데이터 끼리 관계를 맺어 모순이 없는 데이터(무결성과 정합성이 높은 데이터)를 유지하는 것에 집중 3) Non-relational Database (NoSQL) - 관계형 데이터베이스에 속하지 않는 모든 데이터베이스 - 데이터의 형태가 고정되어 있지 않고 유연하게 확장할 수 있지만, 그만큼 관리에 신경을 써야됨 2. 몽고디..

[항해 14기] 개발일지14 (Node.js 입문)

Node.js 입문 1. 익스프레스 - Express.js는 Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 웹 프레임워크 - Express.js 이외에 다양한 웹 프레임워크가 존재하지만 가장 많이 사용됨(Nest.js도 많이 씀) - Express.js는 웹서버 자체가 아닌 Node.js를 위한 웹 프레임워크, 웹 서버를 구현하기 위해 사용 되는 것. - npm init, npm i express 이후 app.js 예시 2. Route 1) Routing - Routing은 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식 2) Router - 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js 기본 기능중 하나 - 라우터 구조 3. Module 1) ..

[항해 14기] 개발일지13 (Node.js 입문)

Node.js 입문 1. 에러 핸들링 1) 개요 - 에러를 관리하는 방법, 예상치 못한 상황에 대처하는 방식 - 에러는 예상할 수 있는 에러와 예상치 못한 에러로 구분 가능, 일반적인 어플리케이션을 설계할 때는 예상치 못한 에러 상황이 더욱 많이 일어날 것으로 가정해야함 - 프로그래머가 작성한 코드에서 예상치 못한 에러가 일어날 가능성은 언제나 존재 2) try/catch - 예외 처리 방식, 일반적으로 try/catch문을 사용 - 에러가 발생하더라도 프로그램이 멈추지 않고 에러를 기록할 수 있음 3) throw - 고의적으로 에러를 발생시켜야 할 경우 - ex) 은행 어플리케이션의 현금 인출 서비스를 만든다고 할 때, 계좌의 잔고가 요청받은 금액보다 적다면 현금 인출을 막고 예외를 발생시켜야함 - t..

[항해 14기] 개발일지12 (동기/비동기, 객체 리터럴)

주특기 입문 1. 동기, 비동기 1) 동기 - 먼저 실행된 코드의 결과가 나올때까지 대기 2) 비동기 - 실행된 순서와 관계없이 결과가 나옴 3) Blocking Model - 코드의 실행이 끝나기 전까지 실행 제어권을 다른곳에 넘기지 않음 4) Non-Blocking Model - 코드의 실행이 끝나기 전에 실행 제어권을 다르곳에 넘김겨 다음 코드 실행 가능 - JS 방식, 동기적 명령을 제외환 모든 함수는 비동기적 실행 5) 동기와 Blocking 비교 - 제어권을 넘기지 않으면 비동기 처리가 가능한 환경이어도 비동기 처리 불가능 2. 프로미스 1) 프로미스 - 비동기 처리를 동기적 처리로 변환해주는 객체 2) executor - Promise 실행 함수, Promise가 만들어질 때 자동으로 실행 ..

[항해 14기] 개발일지11 (Node.js)

주특기 입문 1. Node.js 1) 개요 - Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임 - Node.js를 통해 JS 애플리케이션들을 실행할 수 있으며, 주로 서버를 실행하는데 많이 사용 2) 상세 - JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램 - JavaScript V8엔진 위에서 동작하는 런타임(환경) - 스크립트 언어가 아닌 프로그램 - 웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어짐 - Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있는 것이 특징 3) Event-driven, Event Loop - 이벤트 기반(Event-driven) : 이벤트가 발생할 때 미리 지정해..

[항해 14기] 개발일지10 (프로그래머스 1LV - 카카오 기출)

알고리즘 1. 프로그래머스 14문제 중 남은 5개(심화 난이도) 1) 모든 문제 해결 완료 2) 해결한 문제 리스트 - 폰켓몬, [1차] 비밀지도, 키패드 누르기, [1차] 다트 게임, 크레인 인형뽑기 게임 2. 다른 방식으로 풀어볼 문제 - [카카오 인턴]키패드 누르기 : 나중에 맨하탄거리, 유클리드 거리 공부 후 해당 방식으로 연습 - [1차] 다트 게임 : 배열과 정규식 사용해서 코드 최적화 - 크레인 인형뽑기 게임 : 배열을 회전 시킨 뒤 pop등을 이용 3. 다시 풀어본 결과 - 다음달에 다시 풀어본 후 작성 예정 4. 리뷰 - 자료구조를 모르는 상태로 풀어서 비효율적인 코드 작성이 많았다. 추후에 자료구조 공부 이후 몇몇 문제를 다시 풀어볼 예정 - splice나 중첩 포문등을 자주 사용하여 ..

[항해 14기] 개발일지9 (프로그래머스 1LV)

알고리즘 1. 프로그래머스 14문제 중 9개(심화 난이도) 1) 모든 문제 해결 완료 2) 해결한 문제 리스트 - 약수의 개수와 덧셈, 약수의 합, 예산, 최대공약수와 최소공배수, K번째 수, - 나머지가 1이되는 수, 소수 찾기, 실패율, 체육복 2. 다른 방식으로 풀어볼 문제 - 약수의 개수와 덧셈 : 제곱근을 사용하여 코드를 줄여보자 - 체육복 : 이중포문 최적화 3. 다시 풀어본 결과 - 다음달에 다시 풀어본 후 작성 예정 4. 리뷰 - 중첩 반복문을 남용하는 습관을 줄이자

[항해 14기] 개발일지8 (프로그래머스 숙련)

알고리즘 1. 프로그래머스 12문제(중간 난이도) 1) 모든 문제 해결 완료 2) 해결한 문제 리스트 - 3진법 뒤집기, 최소직사각형, 같은 숫자는 싫어, 두 개 뽑아서 더하기, 로또의 순위, 모의고사 - 문자열 정렬하기, 내림차순으로 배치하기, 소수 만들기, 숫자 문자열과 영단어, 시저 암호, 신규 아이디 추천 2. 다른 방식으로 풀어볼 문제 - 로또의 순위 : 배열 만들어서 비교 - 모의고사 : 배열 만들어서 비교 - 숫자 문자열과 영단어 : 배열or객체, 정규식 이용 3. 다시 풀어본 결과 - 다음달에 다시 풀어본 후 작성 예정 4. 리뷰 - 컨디션이 좋지 않은 상태로 진행하였고, 문제 제출에만 급급하여 비효율적인 코드가 많이 나옴 - 사이즈가 작은 특정 규칙들은 배열로 비교하여 풀면 코드 최적화가..

[항해 14기] 개발일지7 (프로그래머스 기본)

알고리즘 1. 프로그래머스 28문제(기본 난이도) 1) 모든 문제 해결 완료 2) 해결한 문제 리스트 - 직사각형 별찍기, 짝수와 홀수, 가운데 글자 가져오기, 두 정수 사이의 합, 문자열을 정수로 바꾸기 - 없는 숫자 더하기, 음양 더하기, 평균 구하기, 핸드폰 번호 가리기, 행렬의 덧셈 - x만큼 간격이 있는 n개의 숫자, 부족한 금액 계산하기, 2016년, 나누어 떨어지는 숫자 배열, 내적 - 문자열 내 p와 y의 개수, 문자열 다루기 기본, 서울에서 김서방 찾기, 수박수박수박수박수박수?, 완주하지 못한 선수 - 이상한 문자 만들기, 자릿수 더하기, 자연수 뒤집기, 내림차순으로 배치하기, 정수 제곱근 판별 - 제일 작은 수 제거하기, 콜라츠 추측, 하샤드 수 2. 다른 방식으로 풀어볼 문제 - 문자..