분류 전체보기 123

MSSQL Database 연동(2)

[ 데이터 컨테이너(MSSQL) ] - 데이터 컨테이너 : 데이터를 담고 있는 용도의 타입을 의미 - 실무에서는 데이터베이스 연동을 할 때, 응용프로그램에서 직접 SqlCommand를 이용해 데이터베이스 조작을 하지 않고 테이블 단위로 조작 작업을 담당하는 DAC(Data Access Component) 클래스를 만들어서 간접적으로 연동한다. (응용 프로그램과 데이터베이스 사이에 Layer를 두는 것과 같다.) - 아래는 "MemberInfo" 테이블에 해당하는 데이터 컨테이너를 정의하는 예제이다. using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; u..

Programming/C# 2019.03.11

MSSQL Database 연동(1)

[ System.Data.SqlClient.SqlConnection ] - Connection String은 app.config에 connectionStrings에 정의해두고 시작한다.(https://staticvoidlife.tistory.com/80) - 아래와 같이 연결하면 된다. 참고로 SqlConnection은 IDisposable 인터페이스를 구현한다. using System; using System.Configuration; using System.Data.SqlClient; class Program { static void Main(string[] args) { string connectionString = ConfigurationManager.ConnectionStrings["TestDB..

Programming/C# 2019.03.05

app.config

[ appSettings ] - CLR보다 그 위에서 실행되는 응용 프로그램에 값을 전달하는 목적으로 사용가능하다.- key와 value로 구성된다. - 사용은 아래와 같이 하면 된다. - 참조 관리자를 통해 Assembly 범주의 "System.Configuration" 을 찾아 참조 추가를 하여야 한다. using System; using System.Configuration; class Program { static void Main(string[] args) { string txt = ConfigurationManager.AppSettings["AdminEmailAddress"]; string txt2 = ConfigurationManager.AppSettings["Delay"]; Console...

Programming/C# 2019.03.05

[네트워크 프로그래밍] Http 통신

- HTTP 통신도 내부적으로 TCP를 이용한다. (일반적으로 포트 = 80) [ System.Net.HttpWebRequest ] - BCL에 정의된 HTTP 관련 타입 using System; using System.IO; using System.Net; class Program { static void Main(string[] args) { // HttpWebRequest 타입은 내부적으로 TCP 소켓을 생성하고 HttpWebRequest req = WebRequest.Create("http://www.naver.com") as HttpWebRequest; // GetResponse 호출 단계에서 지정된 웹 서버로 HTTP 요청을 보내고, 응답을 받는다. HttpWebResponse resp = r..

Programming/C# 2019.03.02

[네트워크 프로그래밍] TCP/IP 예제

- 서버측에서의 Binding까지는 UDP 서버 소켓 사용하는 방법과 동일함. - TCP/IP 통신을 할 때 Socket의 생성자는 아래와 같이 지정한다. Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - TCP/IP 서버는 아래와 같이 동작함. Binding -> Listen(연결 받을 수 있는 상태) -> Accept(클라이언트 접속 큐에서 하나 꺼내옴) - TCP/IP에서는 Send / Receive를, UDP에서는 SendTo / ReceiveFrom을 사용하여야 한다. 이미 Accept로 클라이언트 소켓 정보를 알고있으므로, Send / Receive에는 접점 정보를 알아내기 ..

Programming/C# 2019.02.27

[네트워크 프로그래밍] UDP 예제

[ 소켓 프로그램 실습 기본 예제 ] - 물리적으로 두 대의 PC를 구할 수 없으므로 아래와 같은 방식으로 구현한다. using System; using System.Net.Sockets; using System.Threading; class Program { static void Main(string[] args) { Thread serverThread = new Thread(serverFunc); serverThread.IsBackground = true; serverThread.Start(); Thread.Sleep(500); // 소켓 서버용 스레드가 실행될 시간을 주기 위해 Thread clientThread = new Thread(clientFunc); clientThread.IsBackgro..

Programming/C# 2019.02.27

파스칼의 삼각형

[ 파스칼의 삼각형 ] 파스칼의 삼각형은, 아래와 같이 조합(Combination)과 연관이 있다. 위에서 주어진대로, 로 가정하면 구현하기 매우 간편해진다. 파스칼의 삼각형을 코드로 구현하면 아래와 같다. m과 n을 입력받아서 을 출력한다. #include #define MAX_ARRAY_SIZE (31) int main(void) { int n, m; int D[MAX_ARRAY_SIZE][MAX_ARRAY_SIZE] = { 1, }; scanf("%d %d", &n, &m); for (int i = 1; i

Algorithm/Algorithm 2018.10.01

[그래프] 인접 리스트

설명설명 [ BFS, DFS 구현(인접리스트 활용) ] DFS와 BFS 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB4284613356802329.497%문제그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.입력첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 한 간선이 여러 번 주어질 수도 있는데, 간선이 하나만 있는 ..

Algorithm/Algorithm 2018.08.21

Quick Sort / Merge Sort

[ Quick Sort ] - 이미 정렬되어있는 경우 O(N^2) 알고리즘이 됨에 유의#include #include using namespace std; void swap(int input[], int a, int b) { int temp = input[a]; input[a] = input[b]; input[b] = temp; } int partition(int input[], int low, int high) { int index = low; for (int i = low; i < high; i++) // 여기서 high를 일단 pivot으로 보고있으므로 high는 빠져야한다. { if (input[i] = high) return; int pivot = partition(input, low, high..

Algorithm/Algorithm 2018.08.21

소수 구하기, 소인수분해

[ 소수 구하기 ] 1 ~ N까지 모든 소수를 구하기 - 에라토스테네스의 체 1. 1은 소수가 아니다. 2. 2부터 시작하여 아직 지워지지 않은 수는 소수이다. 3. 소수를 찾았으면, 그 수의 배수를 모두 지운다. 4. 루트 N까지만 검사를 해보면 된다. Step 0. 초기상태. 1은 소수가 아니므로 지운다. Step 1. 2부터 시작한다. 2는 지워지지 않았으므로 2는 소수이며 2의 배수를 모두 지운다. Step 2. 그다음 수 3이 지워지지 않았으므로, 3도 소수이고, 3의 배수를 모두 지운다. Step 3. 4는 이미 지워져있으므로, 소수가 아니다. Step 4. 이런식으로 루트N까지 검사했을 때, 남아있는 수들이 모두 소수이다. [ 소수 구하기 문제 ] 문제 링크 : https://www.acmi..

Algorithm/Algorithm 2018.08.16