///////
Search

알고리즘,DB_장서현

알고리즘 기초

프로그래머스 자릿수 더하기

문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
Plain Text
복사
1.
String → Integer → String
code
2.
% 연산 (몫과 나머지) 이용하기
code

CodeUp 1278: 자릿수 계산

어떤 숫자가 입력되면 그 숫자가 몇 자릿수 숫자인지 알아내는 프로그램을 작성하시오. 예) 7 ----> 1 (1자릿수) 10 ----> 2 (2자릿수) 4322 ----> 4 (4자릿수)
Plain Text
복사
code

CodeUp 1620: 자릿수의 합

어떤 수 n이 입력되면 n의 각 자릿수의 합이 한 자리가 될때까지 계산하여 출력하시오. 예) 1234567 1234567 → 1+2+3+4+5+6+7 = 28 → 2 + 8 = 10 → 1 + 0 = 1
Plain Text
복사
code

DB 띄우는 방법

aws EC2 띄우고 서버에 들어가서 Docker 설치하기

aws - 아마존 웹 서비스(Amazon Web Services): 다른 웹 사이트나 클라이언트측 응용 프로그램에 대해 온라인 서비스를 제공하고 있다. 이러한 서비스의 상당수는 최종 사용자에 직접 공개되는 것이 아니고, 다른 개발자가 사용 가능한 기능을 제공하는 플랫폼을 제공하는 PaaS(서비스형 플랫폼)이다.
EC2 - 일래스틱 컴퓨트 클라우드 (Elastic Compute Cloud): 아마존닷컴의 클라우드 컴퓨팅 플랫폼으로 아마존 웹 서비스의 중앙부를 이루며, 사용자가 가상 컴퓨터를 임대 받아 그 위에 자신만의 컴퓨터 애플리케이션들을 실행할 수 있게 한다. EC2는 사용자가 아마존 머신 이미지(AMI)로 부팅하여 아마존이 "인스턴스"라 부르는 가상 머신을, 원하는 소프트웨어를 포함하여 구성할 수 있게 하는 웹 서비스를 제공함으로써 스케일링이 가능한 애플리케이션 배치(deployment)를 장려한다. 사용자는 필요하면 서버 인스턴스를 만들고 시작하고 종료할 수 있으며, 실행 중인 서버에 대해 시간 당 지불하므로 "일래스틱"(elastic, 탄력적인)이라는 용어를 사용하게 된다.
Docker: 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다.

MySQL Workbench 설치와 MySql 접속

1.
MySQL Workbench 설치 후 ‘+’ 버튼을 눌러 새로운 Connection 을 만든다.
참고: password = password
2.
만들고나서 눌러보면 접속이 되지 않는다.
 연결이 안되는 이유:
Security Group(보안그룹) 포트를 열어주어야 한다.
MySql: 3306
Nginx(Web): 80
Spring Boot: 8080
3.
Security Group(보안그룹) 포트 열기
a.
인스턴스 - 보안 탭에서 보안 그룹 링크를 누른다.
b.
인바운드 규칙 편집을 누른다.
c.
규칙을 추가한다. (MYSQL/Aurora, 3306 포트, 0.0.0.0/0 - 모두에게 열기)
4.
포트를 연 후에는 정상적으로 열림을 확인할 수 있다.

DB란?

File과 DB의 비교

파일
저장하는 기능
Data Base
인덱싱 기능: 데이터에 쉽게 접근할 수 있게 분류해주는 기능 검색 기능: 다양한 옵션이 있다. 구조를 잡아서 저장하는 기능 데이터를 중간에 끼워 넣는 기능 특정 부분만 업데이트 하는 기능 특정 조건에 해당하는 데이터만 수정하는 기능 이중화 기능: 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제해 관리하는 것 (+ 서버 클러스터링: 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술) 데이터를 넣기 전 check 기능을 통해 데이터의 신뢰성을 높일 수 있다. 단점: 사용방법을 따로 배워야 한다.

DB 실습

ERD 초안
PK(Primary Key): 한 개의 record 또는 row 를 테이블 안에서 고유하게 식별할 수 있는 인식표
FK(Foreign Key): 외래키, 외부에서 온 Key 라는 뜻이다.
PK 와 FK 는 상대적인 개념인데 출판사 id 가 book 입장에서는 외래키(FK)이지만 publisher 입장에서는 Primary Key(PK)이다.

DB 입문

Create Database

1.
스키마(DB) 생성하기
2.
DB 사용하겠다고 특정하기

Create Table

1.
book Table 만들기
Primary Key 체크!
2.
1권의 책 Insert
3.
publisher Table 생성 & 5개 출판사 Insert

Foreign Key & Parimary Key

1.
Foreign Key
초보자일 경우, Foreign Key 는 교과서에서처럼 무조건 걸지 말 것 → 어플리케이션 확장에 문제가 생길 수 있기 때문이다.
book Table 에 publisher Table 의 publisher_id 를 외래키로 걸기 example
Foreign Key 제약 조건
INSERT INTO `likelion-db`.`book` (`bookid`, `book_name`, `publisher_id`) VALUES (5, 'Do It! 자바 프로그래밍 입문2', 5);
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`likelion-db`.`book`, CONSTRAINT `publisher_id` FOREIGN KEY (`publisher_id`) REFERENCES `publisher` (`publisher_id`))
⇒ publisher(id=5)가 없기 때문에 나는 에러이다. 5번을 사용하고 싶다면 publisher Table 에 먼저 (id=5)를 등록해 주어야 한다.
2.
Primary Key
유일하게 식별할 때 사용하는 Key 를 Primary Key 라고 하며 중복될 수 없다.
그래서 book Table에 INSERT INTO `likelion-db`.`book` (`bookid`, `book_name`, `publisher_id`) VALUES (1, 'Do It! 자바 프로그래밍 입문2', 1); 을 또 Insert 할 경우 1번을 이미 앞에서 쓰고 있기 때문에 Duplicate entry 에러가 난다.