피곤핑
코딩일탈
피곤핑
전체 방문자
오늘
어제
  • 분류 전체보기
    • Kotlin & Java
    • Spring
      • Spring Security
      • Spring
    • 네트워크
    • JavaScript & Node js
    • Docker
    • Python3
    • Unity
    • 딥러닝
    • 객체지향프로그래밍
    • Error 보고서
    • 나의 이야기 & 회고
    • HTML & CSS
    • Archive
    • 독서

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • Client
  • 99클럽
  • JavaScript
  • 코딩테스트준비
  • nodejs
  • 개발자취업
  • 티스토리챌린지
  • 오블완
  • TiL
  • 항해99

최근 댓글

hELLO · Designed By 정상우.
피곤핑

코딩일탈

0924 서버프로그래밍
Archive

0924 서버프로그래밍

2019. 9. 24. 10:43

https://docs.google.com/presentation/d/1IxEBGxXkzzKvmbDofOnNqTAOsY0VzoL5naNlUh7rA3w/edit#slide=id.g6269fccc80_2_0

 

숫자 야구 게임

숫자야구게임 점점 더 예뻐지는

docs.google.com

->

MSSQL Sever 2017 Express

SSMS 

다운받기

 


.NET 컴퍼런스가 열렸움!!!! 3일간 진행되고 있움! 

.NET Core 3.0이 정식으로 발표됨! 강사님이 기다리셨움

 - 기본적으로 window os에서만 돌아갔는데 현재는 잘 안맞아서 cross platform? 으로 새로 맞췄음

 - mono project라는게 있었는데 이게 오픈소스 개발자들이 linux에서 .net을 구현하기위해서 개발함!

  -> 안드로이드랑 ios앱을 c#을 이용해서 개발할 수 있는 앱을 만들음!! (자말?? 사마린???)

 

 - c#으로는 데스크탑 애플리케이션을 만드는 경우가 많을것임! (회계에서는 c# winform을 사용함)

 

 - .Net -> desktop(사실 비중이 되게 큼! 블루오션), web, cloud, mobile, gaming, IoT, AI

  -> IoT (라즈베리파이-좁은의미, 아듀이노) - 파이썬을 많이씀 (비전문가도 쉽게 접할 수 있기 때문에)

  -> ML .NET (굉장히 강력함!! C#으로 AI만들면 좋음!)

 - spring (자바에서 웹을 개발하는 플랫폼)

 


 - 마이크로 서비스 (서로 결합된 모듈들을 각각의 (여러개의 작은)독립적인 프로그램으로 만듦!)=>결국 큰 앱

 - gRPC - (웹 API보다 성능이 좋음)

 - Worker Service (웹에서 쓰기 어려운걸 쓰게해줌)

 

유투브 - keynote (최신얘기) - 은근슬쩍 자소서, 면접에 PR해보기 ㅎㅎ 


(인공지능 에어컨,, ,ㅎ 사용자의 평균 시간 측정)

서버를 만들기위해선 두가지 기술이 필요함! 

1. 데이터베이스 - 우리는 2일

2. 

 


[데이터베이스] - DBMS

 - SQL Server

 - Oracle

 - MySQL (리눅스나 파이썬, 소규모 영세 회사,,, 네이버가 쓰고있음 ) -> 죽일라고 오라클이 인수함,,ㄷㄷㄷㄷ

 - Maria DB.. (무료고 좋음 함 써보셈)

 

 - 스키마 (타임이 정해져있는 구조)

   -> 관계형 데이터베이스들은 고정되어 있으나 고정안된건 low SQL???? 

        최근에 비정형 데이터가 많아지면서 ..

 

 - SQL의 특징 

  4. 대화식 언어 : 영어 문장 읽는것처럼 자연어랑 거의 가깝다는 뜻

  5. 디비 마이그레이션은 되게 힘든 작업임 (SQL Server -> ORACLE 이렇게 옮기는거)

 

 


설치

1.

2.

3.

 - 혼합모드는 아이디와 계정사용 (나는 1로 했음)

 - 윈도우 인증모드는 내 노트북에서만 접근 가능

 

4. 설치중

5. 설치완료

=> 다 깔고나면 밑에 검색에

SQL SERVER 2017 구성관리자 누르기

 

* 여기서 SQL server -> MSSQL_SERVER 다시시작 이거 하는게 중요함!!!!

 

- TCP 포트를 1433 안하는게 회사 원칙임 이렇게하면 욕 바가지로 먹음!!!!!!!!!!!!!!

 - 그리고 이렇게 다시 시작해주어야함

 


 

localhost = 127.0.0.1 = . 

 


 

5. 막간을 이용해서 관리도구 받기

 - 아래 저걸 눌러도 되고 SSMS 최신버전 받아두댐!


ssms - sever 관리자로 접속하기

 

(강사님컴접속하기) - 내 인스턴스랑 포트 가 같다면 저거 다 생략가능!

 - 강사님 컴 3512

 방화벽 -> 고급설정 -> 인바운드규칙 -> 새 규칙 -> 포트 -> tcp -> 특정로컬포트 : 1433 -> 연결 허용

 


밥먹고와서 다시시작~~~~

시행착오를 겪고나서의 모범사례 "BEST PRACTIVE" - 코딩할때 쓰이는 용어 

 

 - 폭포수모델 > 관리자들을 관리하기 위한 모델임 

 * 폭포수 모델은 진짜 몰라도 될정도로 아재 계획임,,,,ㅎ

 

- 데이터베이스 하나를 클래스 단위로 만드는게 좋은 프로그래밍!!! 

 


1. 만들어보기 (데이터베이스 -> 새 데이터베이스)

 Chinook - 샘플데이터베이스

 - > 이정도 디비만 제대로 설계할 줄 알면 좋음!

2. 새 다이어그램 만들기

지원객체를 만든다했을때 생기는것

 

3. 새 테이블 만들기 (아티스트를 저장하는 테이블)

 마우스 우클릭 > 새 테이블 만들기 

사용자 정의대로 만들어짐

4. 기본키 설정하기

 *  다른 값들과 구별할 수 있는 것을 key라고 함 

 * bit = boolean

   decimal = numeric => 사실이 두개는 정수임 

   real = (c) float

   float = (c) double

   datetime => 시각을 나타냄

  -> 디비에서는 정확이 0.1을 표현해야하기 때문에 정확히 자료형이 만들어져있음!

      decimal(전체숫자개수,소수점몇자리)

smalldatetime -> 0들어가면 1.1.1900 (최소값) - 이전의 날짜는 저장할 수 없음!!! 

n이 안붙은거는 (char, varchar) 쳐다도 보지마셈!!!!! 

n이붙은것들은 다 Unicode 타입 -> 이걸 쓰세요

 - 아주 미세하게 nchar가 성능이 좋다고 알려져이쓴데 nvarchar를 쓰셈 (???)

    -> nchar(100)의 경우 안쓰는곳은 다 문자로 채워버림!!! nvarchar(100)은 공간낭비 ㄴㄴ 걍 쓰셈

 

5. 저장하기

 

6. 값 입력해보기

 

7. 사실 이름도 null 허용을 하면안되긴함

   - 디폴트는 null이지만 퇴사자 처리같은것이 남아있을때 간혹 허용하는 경우들이 있음!

   - 빈문자열 /= NULL(답변을 거부)

저장

 

 * 보기 > 속성창

 - 아이디사양을 예로 바꾸면 디비를 입력시킬때 알아서 1, 2, 3, 이런식으로 만들어줌!

 => 지금 보고있는건 관리자용 툴임!

 

****

- 수정이 안될것임!! 

 - 그래서 임시로 ArtistId Null값을 예 해주고

 - 다시 이렇게 해줌 -> 그러면 저장 할 수 있음!! 

 

 ** 왜래키 설정!!! 

 -> ArtistId > 관계 > 해서 ~~ 잘 설정하면됨

 

 

* 정규화를 위반함 근데 이렇게 하는 경우도 있음 -> 성능의 문제때문에!! 할때가 있음~!

  => 비정규화, 역정규화, 반정규화 - 정규ㄹ화를 다하고나서 하는게 역정규화인데 처음부터 하는건 잘못된 것

 

 - Playlist와 Track이 있을때 

  예를들어, 감성찢는발라드, 드라이브 노래 이런식으로 묶음을 하고싶을때는 

  PlaylistTrack 이런식으로 Mapping table을 만든다

   -> 근데 아래와 같은경우 같은 값의 입력이 무슨 의미가 있을까? 제약을 주자 

 

 - 복합기본키 만들기

이렇게해야 맞는것임!!!!!! 

 

 - 이런식으ㅗㄹ 기본값을 0으로 해주면 null을 예로 바꾸고 값을 다 입력해야하는 수고를 덜 수 있음!

 


강추노래

 * 강추 노래를 할 때 두가지 묶음안에 둘다 들어갈 수 있지만 서로의 묶음에서 모두다 강추일지는 모름 

그렇기때문에 PlaylistTrack 텡티블 안에 recommended 를 넣어줌! 

 * 데이타 타입을 bit대신 char(1) (N,Y)로 하는 경우가 많은데 이는 굉장히 잘못됐음!!!! 

  -> Gender같은 경우는 IsMan bit 타입 이런식으로 표현 할 수 있음! - 명백한 표현이 되도록 할 것!

 

ex) 도서관 - 두권의 같은 책이 있을 수 있으므로 아래와 같은 설계는 잘못됨!

  -> 이런식으로 바꿔주어야함!!

  +) Book 안에 BookMetaId가 와야함 반대는 절대 안됨! 

 

 

 -> 전체적으로 이런식으로 설계가 되어야함

 


장르

 

 * 장르라는 테이블을 따로 만들자! 

 -> nullable도 관계를 잡을 수 있음!


ex ) 회사의 계층구조

 - 이런식으로 할 수 있지만 60으로 잘못 입력되는건 막을 수 없음 그래서!

  "자기참조테이블"을 만드는 것~!!!!


Chinook의 샘플 데이터베이스

https://github.com/lerocha/chinook-database

 

lerocha/chinook-database

Sample database for SQL Server, Oracle, MySQL, PostgreSQL, SQLite, DB2 - lerocha/chinook-database

github.com

> 새쿼리만들기 > 붙여넣기 > 실행 > 새 데이터베이스 만들기 

 - 아까 했던 직원 관계형,,,,,!!! 

 

관계 누르고 > F3 > 테이블 및 열 사항 > 관계볼 수 있음 

  -> 여기선 고객마다 전담하는 직원을 한명씩 두는 의미로 볼 수 있음

 


Invoice

 - InvoiceLine 안에있는 UnitPrice는 얼마에 샀는지임! (뭐세일해서삿을수도있고 그런점~)

   Track 안에있는 UnitPrice는 권장가격!

 

 c# 의 엔티티 프레임워크... 하면 db 할때,, ~~ 도 못하는데 c# 쓰면 이게 됨!


모델링실습 - 오늘머먹지

'Archive' 카테고리의 다른 글

0926 C#과 DB 연동 프로그래밍 : EWIG 01  (0) 2019.09.26
0925 서버프로그래밍 MSSQL_SERVER DB  (0) 2019.09.25
0906 10-인터페이스  (0) 2019.09.06
0906 09-가상메서드-추상메서드  (0) 2019.09.06
0906 서버프로그래밍 기초3  (0) 2019.09.06
    'Archive' 카테고리의 다른 글
    • 0926 C#과 DB 연동 프로그래밍 : EWIG 01
    • 0925 서버프로그래밍 MSSQL_SERVER DB
    • 0906 10-인터페이스
    • 0906 09-가상메서드-추상메서드
    피곤핑
    피곤핑

    티스토리툴바