분류 전체보기
-
MVC 파트, Short.lyTopic/Database 2022. 1. 26. 19:41
Short.ly MVC ✔️ 어떤 url 주소를 짧은 url 주소로 변환하여 주는 역할을 해주는 어플리케이션을 가지고 mysql, MVC 다뤄본다. 1) controllers 디렉토리 생성 models, routes, modules 등의 디렉토리 들과 동일 선상에 controllers 디렉토리를 생성해 주고, 그 안에 links 라는 디렉토리를 생성한 후, links안에 index.js 생성 controllers / links / index.js 2) app.js 서버 통신을 위한 express 와 routes 디렉토리 내에 있는 라우팅 파일들을 불러와서 app.use('/', indexRouter) app.use('/links', linksRouter) 클라이언트가 해당 경로로 요청을 보냈을 때 ind..
-
MVC, Database 구현Topic/Database 2022. 1. 25. 22:54
MVC ✔️ Model View Controller SW 아키텍쳐 디자인 패턴이다. 애플리케이션의 기능을 분리한다. 체계화된 프로그래밍을 가능케한다. ex) Ruby on Rails (Ruby) / Laravel (PHP) / Codeigniter (PHP) / Django (python) / Express (JS) Model 어플리케이션이 무엇을 할 것인지 정의한다. 내부 로직을 처리하기 위한 역할을 한다. 데이터 저장소(DB)와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룬다. * Model은 다른 컴포넌트들에 대해 알지 못한다. View 사용자에게 화면(UI)을 보여준다. 화면에 무엇을 보여주기 위한 역할이다. 모델이 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면..
-
SQL 데이터베이스 연결, 스키마, SchemaTopic/Database 2022. 1. 21. 22:33
스키마의 중요성 인스타그램 스키마 디자인 SQL 쿼리문 JOIN에서 유독 막히는 부분들이 있었고 구글링을 하다 보니 JOIN에 대한 좋은 이해를 하게 된 표가 있다. 👇🏻 여기에서 INNER JOIN은 간단히 교집합이라고 생각하면 된다. 문제는 LEFT JOIN과 같은 OUTER JOIN들이 있는데, 쉽게 생각해서 FROM에 들어가는 테이블이 왼쪽, JOIN 칸에 들어가는 쪽이 오른쪽에 위치한다고 생각하고, 그 다음 LEFT냐 RIGHT냐에 따라서 왼쪽 원을 칠할 것이냐 오른쪽 원을 칠할 것이냐 라고 생각하는 편이 편하다. 코드로 풀어보자면, SELECT FROM TableA A LEFT JOIN TableB B On A.key = B.key 그림 왼쪽 상단의 LEFT JOIN의 실사용 쿼리문이다.
-
데이터베이스, SQL, ACID, Schema, QueryTopic/Database 2022. 1. 20. 22:10
SQL Basics ✔️ SQL ☑️ SQL: Structured Query Language / 데이터베이스 언어로, 주로 관계형 데이터베이스에서 사용한다. ex) MySQL, Oracle, SQlite, PostgreSQL ... 다양한 데이터베이스에서 SQL 구문을 사용할 수 있다. SQL이란 데이터베이스 용 프로그래밍 언어이다. 데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽일할 수 있다. 이름에서 보듯이, 데이터가 구조화된(Structured) 테이블을 사용하는 데이터베이스에서 활용할 수 있다. SQL을 사용할 수 있는 데이터베이스와 달리, 데이터의 구조가 고정되어 있지 않은 데이터베이스를 NoSQL이라고 한다. 관계형 데이터베이스와는 달리, 테이블을 사용하지 않고 데이터를 다른 형태로 ..
-
알고리즘 수학, 순열과 조합, GCD / LCM, 멱집합, 정규표현식Topic/Data Structure 2022. 1. 19. 21:33
순열과 조합 ✔️ 순열 ☑️ 순서를 생각하며 결과를 만드는 경우의 수 5장에서 3장을 선택하는 모든 순열의 수 = 5P3 = (5 X 4 X 3 X 2 X 1) / (2 X 1) = 60 일반식: nPr = n! / (n - r)! 조합 ☑️ 순서를 고려하지 않고 결과를 만드는 경우의 수 순열로 경우의 수를 만든 경우에서 중복된 경우를 나누어주면 조합을 얻을 수 있다. 5장에서 3장을 무작위로 선택하는 조합에서 모든 경우의 수 = 5C3 = 5! / (3! * 2!) = 10 일반식: nCr = n! / (r! * (n - r)!) GCD / LCM ✔️ GCD ☑️ 최대 공약수: 둘 이상의 공약수 중에서 최대인 수 문제: Mask States 방역용 마스크를 제작/판매하는 Mask Man 사는 이례적인..
-
-
Linux 심화, Read, Write, Execute 권한, 환경변수, chmod, export, dotenvTopic/Linux 2022. 1. 17. 22:55
사용 권한 ✔️ ls -l : drwxrwxrwx // -rw-r--r-- d는 directory 폴더를 뜻하고 -는 파일을 뜻한다. read / write / execute 를 뜻하고 순서는 user, group, other // ugo~ chmod: 권한을 변경하는 명령어 chmod g-r filename // removes read permission from group chmod o+x filename // adds write permission to other 숫자로 표시가 가능한데, 숫자별 권한 # Sum rwx Permission 7 4(r) + 2(w) + 1(x) rwx read, write and execute 6 4(r) + 2(w) + 0(-) rw- read and write 5 ..
-
자료구조 알고리즘 문제 (다시 보기)algorithm 2022. 1. 11. 17:19
문제 1 피보나치 수열을 순차적으로 출력하는 클로저 형태의 함수를 작성하기. * 출력 : 호출될 때마다 다음 피보나치 수를 리턴하는 함수를 리턴해야 한다. * 주의 사항 : 피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 됩니다. * 예시) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... : 리턴되는 클로저 내부 함수(inner function)의 구현은 recursive 혹은 iterative한 방법 중 어떤 것이어도 괜찮습니다. * 입출력 예시 const fn = test1(); console.log(fn()); // --> 0 console.log(fn()); // --> 1 console.log(fn()); // -..