반응형

전체 글 211

[Node.js] 익스프레스로 SNS 서비스 만들기 (2)

https://soohyun6879.tistory.com/170 [Node.js] 익스프레스로 SNS 서비스 만들기 (1) 익스프레스로 간단한 SNS 서비스를 만들어보겠습니다! 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 기능이 들어갈 예정입니다 하나씩 차근차근 해보겠습니다 :) 1. 프로젝트 세팅 soohyun6879.tistory.com 저번 포스팅에서 프론트 구성과 데이터베이스 세팅까지 완료하였습니다! 이번 포스팅에서는 Passport 모듈로 로그인을 구현해보겠습니다 1. Passport 모듈 연결 로그인 구현을 위한 필요한 패키지들을 설치합니다. npm install passport passport-local passport-kakao bcrypt app.js 파일을 다음과 같이..

Back-end/Node.js 2021.07.27

[프로그래머스/Python] 단어 변환 - Level3

https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 이 문제는 최소 변환 수를 찾는 거였어서 BFS 문제인 줄 알았으나 코드를 짜다보니 DFS 문제였다. 책에서 DFS 문제는 재귀함수로 풀라고 되어 있어서 재귀함수만 생각하다보니까 잘 생각이 안났다.. 다른 사람의 코드를 보니 스택을 이용한 코드가 많았다. 쉽게 이해되는 코드를 참고해서 이해했다. def solution(..

[프로그래머스/Python] 네트워크 - Level3

https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 이 문제는 DFS(깊이 우선 탐색) 문제이다. 끝까지 탐색하면서 네트워크를 개수를 세면 된다. 코드를 짜고 실행해보는데 에러가 발생했다. 찾아보니 재귀함수 호출이 너무 많아서 그런거였다. 코드 구조도 바꾸어 봤는데도 계속 이 에러가 떠서 다른 사람 코드를 보고 구조를 똑같이 했는데도 에러가 났다... 그러던 중 코드에서 변수를 잘못 입력해서 (j 자리에 i..

[프로그래머스/Python] 타겟 넘버 - Level2

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 이 문제는 깊이 우선 탐색(DFS) 를 사용하면 되는 문제였다. 왜 DFS를 사용하면 되는지에 대한 설명은 다음과 같다. 처음에는 dfs 메서드를 solution 밖으로 뺐었는데 뭔가 자꾸 에러가 나서 그냥 바꿨다... def solution(numbers, target): answer = 0 n = len(..

[Node.js] 익스프레스로 SNS 서비스 만들기 (1)

익스프레스로 간단한 SNS 서비스를 만들어보겠습니다! 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 기능이 들어갈 예정입니다 하나씩 차근차근 해보겠습니다 :) 1. 프로젝트 세팅하기 npm init 을 콘솔에 입력하여 package.json 파일을 만듭니다. npm init { "name": "nodebird", "version": "0.0.1", "description": "익스프레스로 만드는 SNS 서비스", "main": "app.js", "scripts": { "start": "nodemon app" }, "author": "sh", "license": "MIT" } 데이터베이스 연결을 위해 시퀄라이즈를 사용할 것입니다. 시퀄라이즈를 설치하고 sequelize init 으로 프로젝..

Back-end/Node.js 2021.07.25

[백준/Python] 특정 거리의 도시 찾기

https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 처음에 제출했을 때 시간 초과가 났다! 이유를 알아보니 파이썬은 input().split() 으로 입력하는 경우 입력량이 많기 때문에 시간 초과가 나는 것이었다... 시간 초과가 나지 않으려면 sys.stdin.readline() 을 사용해야 한다! 이 문제는 최단 거리를 찾는 문제로 너비 우선 탐색(BFS)을 이용하면 풀 ..

Algorithm/백준 2021.07.24

[Node.js+MongoDB] 몽구스 (2) (Mongoose)

https://soohyun6879.tistory.com/166 [Node.js+MongoDB] 몽구스 (1) (Mongoose) 몽구스란? (Mongoose) 몽구스는 MYSQL 의 시퀄라이즈와 같은 것입니다. 몽구스는 시퀄라이즈와 달리 ODM 이라고 불리는데 그 이유는 MongoDB는 릴레이션이 아니라 다큐먼트를 사용하기 때문입니다. Mongo soohyun6879.tistory.com 이전 포스팅에서 몽고디비와 몽구스를 연결하는 것까지 완료했습니다! 이번 포스팅에서 스키마를 정의하고 쿼리를 수행하는 쿼리를 만들어 사용자 등록, 댓글 등록, 댓글 수정 등 기능들을 완성해보겠습니다 1. 스키마 정의하기 schemas 폴더에 users.js 와 comment.js 를 만듭니다. (MongoDB의 컬렉션 ..

Back-end/Node.js 2021.07.23

[프로그래머스/Python] 도둑질 - Level4

https://programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr 이 문제는 첫번째 집부터 마지막 집까지 하나씩 추가하면서 최대가 될 수 있도록 값을 구하면 된다. 인접한 두 집은 털 수 없기 때문에 "현재 i번째 집 money + i-2번째 집 money" 와 "i-1번째 집 money" 중 더 큰 값을 선택하면 된다. 즉, 점화식은 dp[i] = max(dp[i-2] + money[i], dp[i-1]) 가 된다. 이 문제는..

[Node.js+MongoDB] 몽구스 (1) (Mongoose)

몽구스란? (Mongoose) 몽구스는 MYSQL 의 시퀄라이즈와 같은 것입니다. 몽구스는 시퀄라이즈와 달리 ODM 이라고 불리는데 그 이유는 MongoDB는 릴레이션이 아니라 다큐먼트를 사용하기 때문입니다. MongoDB 자체가 자바스크립트인데도 굳이 자바 스크리브 객체와 매핑하는 이유는 MongoDB 에 없어서 불편한 기능들을 몽구스가 보완해주기 때문입니다. MongoDB 는 테이블이 없어서 자유롭게 데이터를 넣을 수 있기 때문에 잘못된 자료형의 데이터를 넣거나 다른 다큐먼트에 없는 필드의 데이터를 넣을 수도 있습니다. 이러한 실수를 막기 위해 몽구스는 데이터를 필터링해주는 역할을 합니다. 또, populate 라는 메서드로 관계가 있는 데이터를 쉽게 가져올 수 있습니다. MongoDB 설치법과 계정..

Back-end/Node.js 2021.07.20

[Node.js+MYSQL] 시퀄라이즈 (3) (Sequelize)

https://soohyun6879.tistory.com/163 [Node.js+MYSQL] 시퀄라이즈 (2) (Sequelize) https://soohyun6879.tistory.com/162 [Node.js +MYSQL] 시퀄라이즈 (1) (Sequelize) 시퀄라이즈란? (Sequelize) 시퀄라이즈는 ORM 입니다. 즉, 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구입.. soohyun6879.tistory.com 이전 포스팅에서 모델과 관계 정의까지 완료했습니다! 이번 포스팅에서 사용자 등록, 댓글 쓰기 등 쿼리 수행을 해보겠습니다 1. 시퀄라이즈 쿼리 알아보기 쿼리 수행을 하기 전에 시퀄라이즈에서 쿼리를 어떻게 사용하는지 알아야 합니다! 다음 예시를 보면 간단한 CRUD 쿼..

Back-end/Node.js 2021.07.20
반응형