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

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

hELLO · Designed By 정상우.
피곤핑

코딩일탈

0926 C#과 DB 연동 프로그래밍 : EWIG 01
Archive

0926 C#과 DB 연동 프로그래밍 : EWIG 01

2019. 9. 26. 10:12

1-1 새 프로젝트 만들기

1-2 프로젝트명 : EWIG

 - .NET 프레임워크 4.7.2가 없다면 업데이트 해주기

 - 강사님이 업데이트 해버려서.... 4.8 SDK로 바꾸자! 

> 솔루션 > 프로젝트 > 이게 우리가 원하는 구조!

 

2. 앨범 목록을 가져와보자

 키가 4인 앨범 목록을 가져오는 코드 

 

2-1.  업데이트

 

2-2. 삽입

 

2-3. 삭제

 

2-4. 카운트

 - 카운트 변수랑 함수를 만들고 각각 삽입 후 삭제후 확인하기 위해 코드를 집어넣음!

 

 * 만들지않은 함수를 먼저 쭉 나열하면서 구현해 놓는것을 "테스트 주도 방법론"이라고 함. = 단위테스트 

 장점 : 길을 헤매지 않게 됨. 매개변수, 반환값을 확실히 알아놓고 할 수있음.

 


단위테스트란? - TDD(Test-Driven-Development)

[자동으로 만들기]

- 이런식으로 단위테스트를 만 들 수 있음!

 

 * 이런 창이 뜸!

 - 클래스를 PUBLIC으로 고쳐주면 해결 됨!

 - 해결하고나면 이런 창이 뜸 - 사실 이름을 따로 설정해줄 필요가 없음 다들 괜찮은 이름임 > 확인

 - 결과화면 

  -> ProgramTests인 이유 > 단위테스트를 만들었던 스크립트 이름이 Program.cs라서!

 

 

[수동으로 만들기]

1. 새 프로젝트 만들기

2. msunit? 치기

3. 만들기

4. 새로 생긴 Unittest.cs 지워버림

5. 직접 추가

 

* 조건과 결과가 드러나게끔 이름을 지어줌

 

6. 접근 하도록 하기

* Program에 커서를 놓고 ctrl + . 치면 자동으로 참조해주는 퀵 옵션이 있음! (근데 나올때가 있고 안나올 때가 있음 ㅠ)

 

7. 단위테스트 코드 만들기

 - AreEqual(기대한 값, 결과를 담는 변수)

 

8. 음수도 하나 추가

 

9. 테스트 탐색기 (보기 > 테스트 탐색기)

 > 모든 탐색기 실행

 * 빨간불이 떠버림

* 이유

 - 반환값이 0뿐임

 

 * 의도적으로 코드가 한개만 통과하도록 해보자

 > 하나만 파란불이 들어올 것임!

 --> 이때 밑에 테스트 세부 정보요약을 보면 어떤값이 들어갔는지 알 수 있음! 

 

10. 고쳐주면 짠

 


1. Album 클래스 만들기

 

2. 보기 > 서버 탐색기

3. 연결추가

4. 서버 연동

5. 디비 선택

6. 확인

7. 컬럼을 변수로 만들기

8. Album_GetCount() 함수를 생성하기위해서는 쿼리문이 필요함

 - SELECT COUNT(*) FROM ALBUM;

 * 커넥션 - 커멘드객체 - 커넥션 실행

 

9. 커넥션하기

 - connection strings -> 좀 복잡하기때문에 각 데이터 베이스 별로 접속문자열을 어떤식으로 써야할지 

   -> F4 > 연결문자열 > 복사하기

 

10. 커멘드 객체 만들기 

11. 실행하기 - 반드시 실행전에 OPEN을 해주어야함!

 동기 : 만약에 5초동안 실행된다 치면 동기로하면 5초동안 멈춰있음 - 좋지않음

 비동기 : 5초동안 멈춰있지않음 - 좋지만 문제는 코드가 복잡함. (.NET에는 어싱크?라는 코드가 있어서 간단히 할 수 있음! = 유니티에서는 코루틴을 생각하면 됨!)

 - command.ExecuteScalar - 값을 한개만 가져올때, 스칼라 값을 반환할때

 - command.ExecuteReader - 벡터를 반환 (여러개의 값)

 - command.ExecuteNonQuery - insert / update/ delete (select가 아닌것들, select는 위에 두개)

 

 * 반환값이 1개지만 그게 int라는 보장이 없기때문에 object 형식으로 나옴 (ExecuteScalar!)

 -> 그렇기 때문에 (int)로 캐스팅 하기 

 * 여러명이 서버컴퓨터에 접근하게되면 서버컴퓨터는 엄청난 메모리가 소요됨. 그래서 매번 작업이 끝나면 커넥션을 끊어주는 작업이 필요함 -> 리소스 작업,, (연결을 맺고있다 = 리소스가 큰 작업이다 = 고로 리소스는 회수가 되어야 함)

 

 - 실행 코드

 

12. 단위 테스트 해보기

'Archive' 카테고리의 다른 글

0927 using문과 IDisposable 오류  (0) 2019.09.27
0926 C#과 DB 연동 프로그래밍 : EWIG 02  (0) 2019.09.26
0925 서버프로그래밍 MSSQL_SERVER DB  (0) 2019.09.25
0924 서버프로그래밍  (0) 2019.09.24
0906 10-인터페이스  (0) 2019.09.06
    'Archive' 카테고리의 다른 글
    • 0927 using문과 IDisposable 오류
    • 0926 C#과 DB 연동 프로그래밍 : EWIG 02
    • 0925 서버프로그래밍 MSSQL_SERVER DB
    • 0924 서버프로그래밍
    피곤핑
    피곤핑

    티스토리툴바