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 |