본문 바로가기

분류 전체보기

(71)
Node.js 와 Mysql 데이터 삽입 유데미 Node.js 강의를 보면 기존의 쇼핑 사이트는 데이터를 json형태로 관리 하였습니다. 이제는 Mysql을 통해서 데이터를 집어 넣도록 하겠습니다. 제품을 관리하는 models폴더 안에 있는 product.js에서 제품을 저장 할 수 있게하는 save() 기능을 만들도록 하겠습니다. module.exports = class Product { constructor(id, title, imageUrl, description, price) { this.id = id; this.title = title; this.imageUrl = imageUrl; this.description = description; this.price = price; } save() { return db.execute ('INS..
Node.js와 Mysql 연동 유데미에서 강의를 들으면서 진행하던 중 mysql과 연동하는 과정에서 "npm install --save mysql2"을 입력하는 장면이 나왔다. 나 또한 똑같이 입력을 하였으나 mysql은 제대로 설치가 됐으나, 보안상 문제가 발생했으니 "npm audit fix --force"을 입력하라고 나왔다. 그래서 입력하고 설치 했다. 다음으로는 mysql에서 새로운 스키마를 생성한다. 나는 node-complete라고 만들었다. 제품 테이블에서 필요한 것인 id, 제목, 가격, 설명, 이미지 주소 이다. 각각 설정을 해주고 apply 버튼을 누르면 된다. 그렇게 만들고 나서 products에서 제일 오른쪽에 있는 아이콘을 클릭해준다. 이렇게 제품에 대한 정보를 입력하면 sql은 끝이다. const mysql..
node.js 설정 하기 기본적으로 node.js를 이용해 백엔드를 구현 할 때 필요한 설정이다. 템플릿 엔진으로는 ejs를 사용한다. 아무것도 없는 상태에서 Node.js 환경 설정 하기 app.js를 생성 , (서버의 뿌리가 되는 app.js 환경설정과는 별 상관이 없습니다.) npm init을 통해 package.json을 생성한다. npm install --save express ejs body-parser을 터미널에 입력하여 package-lock.json파일을 생성 한다. npm install --svace-dev nodemon 을 터미널에 입력한다. 설치가 되면 package.json 파일에서 dependencies에 nodemon이 추가 된 것을 확인 할 수 있다. "dependencies": { "body-par..
11726 2xn 타일링 (JAVA) ●다이나믹 알고리즘 2xN 크기의 직사각형을 1x2, 2x1 타일로 채우는 방법의 수를 구하는 문제이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static PriorityQueue que = new PriorityQueue(); public static void main(String[] args) throws Exception { BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine())..
1798 수들의 합 JAVA ●수학 ●그리드 알고리즘 1+2+3+4+5+6+7+8+9+10 = 55 했을 때 제일 큰 자연수를 말한다. S 가 55 이니 제일 큰 자연수는 10 import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); long S = sc.nextLong(); long sum =0; int cnt = 0; for(int i=1; ; i++){ if(sum > S){ break; } sum += i; cnt++; } System.out.println(cnt-1); } }
원자성,가시성 멀티 스레드를 다루는 과정의 기초가 되는 가시성,원자성 가시성과 원자성은 여러 Thread가 동시에 접근 가능한 공유 변수(나한테 보이는게 상대방한테도 보인다) 가시성 Thread는 동작하는 시점에 하나의 CPU를 점유하고 동작을 한다. 선언한 변수의 값이 Memory에만 존재하는 것이 아니라, CPU cahce라고 하는 영역에도 존재한다. 이는 CPU가 Memory에서 값을 읽어들여오고 다시 쓰고 하는 시간을 아끼기 위함이다. 더 큰 문제는 CPU cache에 값이 Memory에 언제 옮겨갈지도 모른다는 것이다. 이를 해결하는 것을 가시성 이라고한다. 원자성 i의 기존 값을 읽는다. (READ) i에 1을 더한다. (MODIFY) i의 값을 변수에 할당한다. (WRITE) 이를 두개 Thread가 동시..
1911 흙길 보수하기 (Java) https://www.acmicpc.net/problem/1911 정렬 스위핑 1911번: 흙길 보수하기 어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1
알고리즘 문제 해결 PICNIC 짝이 될 수 있는 모든 경우의 수를 구하는 문제 4 6 0 1 1 2 2 3 3 0 0 2 1 3 이 경우에는 {0,1} {1,2} {2,3} {3,0} {0,2} {1,3} 0,1을 고른 상태에서 나머지 쌍들을 → 방향으로 확인 하는 것이다. 1,2는 앞서 고른 1과 중복이 되서 패스, 2,3 은 선택 할 수있다. 그러면 다시 2,3, 제외하고 그 뒤로 연결되는게 있는지 확인을 한다. 그렇게 0,1을 기준으로 확인이 다 끝났으면 그 다음 1,2 또 끝나면 2,3 이렇게 확인 하는 것이다. 이 문제의 base 기준은 1.모든 학생들이 짝을 이루었을 때 → 1 2.다 확인을 했는데 결국에는 짝을 이루지 못했을때 → 0 recuersive는 0 기준이 될 때 1~5까지 확인 1 기준이 될 때 2~5 확인 2..
알고리즘 문제 해결 BOGGLE #Boggle 무식하게 푼다. 일명 (brute-force)는 컴퓨터의 빠른 속도를 이용해 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 의미한다. 예를 들면 두 점 사이의 최단 경로를 찾는 문제라면 두 점 사이의 경로들을 하나 하나 전부 만들어서 그중 가장 짧은 것을 찾는 방법 이다. 이러한게 “무식한” 알고리즘의 좋은 예이다. 이러한 가능한 모든 경우의 수를 세는 문제를 완전 탐색이라고 부릅니다. 재귀 호출과 완전 탐색 우리가 들여다보는 범위가 작아지면 작아질수록 각 조각들의 형태가 유사해지는 작업들을 볼 수 가 있습니다. 완전히 같은 코드를 반복해 실행하는 for 같은 반복문이 이와 같은 예시 입니다. 이런 작업에 유용하게 사용되는 개념이 재귀 함수, 재귀 호출 입니다. 쪼개지지 않은 가장..
알고리즘 시간 복잡도 분석 #1 알고리즘의 수행시간을 측정하는 기준은 바로 반복문이다. 선형시간알고리즘O(N) 다이어트 분포의 평균 구하기 선형이하시간알고리즘O(NlogN) 성형 전 사진 찾기(이진 탐색) 다항시간 알고리즘 시간복잡도가 O(N), O(N^2) … O(N^600) 다항 끼리의 시간차이도 엄청난다. -소인수 분해 1보다 크고 소인수들만의 곱을 계산 파란색:선형이하시간 알고리즘 초록색:다항시간알고리즘 단 여기서 입력의 크기가 작으면 시간복잡도에 큰 의미를 주지는 않는다. 입력의 종류에 따른 수행 시간의 변화 입력의 크기 말고도 입력을 어떻게 받느냐도 중요함 삽입정렬을 예로 들자면 배열의 인수들이 가지런하게 정렬이 되어 있는 상태라면 O(1), 선형의 시간으로 본다면 O(N) , 최악은 O(N^2) 삽입 정렬을 흔히 사용..