분류 전체보기
-
자바 개념 6(thread)학교 수업/자바프로그래밍 2020. 4. 23. 18:50
1:1 채팅프로그램이 아닌 다인원 채팅프로그램을 구현하려면서버가 여러 클라이언트와 통신하면서 요청을 처리하기 위해 필요한 쓰레드에 대해 알아야한다.( 서버&클라이언트 1:1이면 thread사용 불필요 but 서버 & 클라이언트1 & 클라이언트2 & 클라이언트3... 이면 thead사용해야함)그래서 therad란 무엇인가? thread 쓰레드 - 개념 : 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미 프로세스(Process) : 실행중인 프로그램, 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 그림으로 자세히 보자면 - 쓰레드의 생명 주기 1. Runnable (준비상태) 스레드가..
-
자바 개념 5(socket programming의 바탕 TCP/IP)학교 수업/자바프로그래밍 2020. 4. 23. 18:14
네트워크? 데이터를 교환하기 위해 전송 매체를 매개로 서로 연결되어 있는것인터넷? 전세계 컴퓨터들이 서로 연결되어 있는 거대한 네트워크 자바수업에서 마지막으로 다루는 것이 채팅프로그램인데채팅프로그램은 소켓 프로그래밍(=네트워크 프로그래밍)과 thread를 이용해 구현한다 socket 소켓 - 개념: 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 단자 즉 프로세스 통신 간에 사용되는 양쪽 끝단을 의미한다. 소프트웨어 차원에서 원격에 존재하는 두 호스트를 연결해주는 매개체 - 자바 안에서 소켓의 종류에는 서버소켓과 클라이언트소켓이 있다.- 소켓은 통신하기 위해 대표적으로 TCP와 UDP를 이용한다. 그렇다면 소켓을 이용한 프로그래밍에 대해 더 자세히 설명하기 전에소켓이 통신하는..
-
[SWEA] 2806 N-Queen문제 풀이 2020. 4. 23. 00:13
2806 N-Queen 풀이) 완전 탐색 문제이고,퀸이 같은 행, 열 또는 대각선에 놓일 수 없다는 점을 잘 생각해서 풀면 되는 문제이다. 퀸은 같은 행에 놓일 수 없다 ↓ 한 행 당 하나의 퀸만 놓일 수 있다. 를 기준으로 각 행 당 어떤 열에 퀸을 놓을 때, 이전 행들이 퀸을 놓은 열과 직선인지 혹은이전 행들이 퀸을 놓은 열과 대각선인지 를 확인해서 두 경우에 해당하지 않는 경우에만 퀸을 놓아줬다. (이전 행들이 퀸을 놓은 열들은 1차원 배열을 통해 저장해줬다.int row[10] // row[i] = j -> i번째 row j번째 column에 퀸이 놓여졌다.) 코드) 1234567891011121314151617181920212223242526272829303132333435363738394041..
-
[SWEA] 1954 달팽이 숫자문제 풀이 2020. 4. 22. 19:43
1954. 달팽이 숫자 풀이)쉬운 문제이다.숫자들을 for문을 이용해 배열에 저장한 뒤, 배열을 출력했다. 코드) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include using namespace std; int arr[10][10]; int main() { int T = 0; //freopen("input (1).txt", "r", stdin); scanf("%d", &T); for (int test_case = 1; test_case
-
[SWEA] 1824 혁진이의 프로그램 검증문제 풀이 2020. 4. 21. 22:48
1824 혁진이의 프로그램 검증 풀이)dfs를 통해 탐색해준 문제이다. 주의할점은 ? 문자와 cycle 여부이다. 1. ? 문자일 경우, 4방향으로 바뀔 확률이 동일하니깐 4방향 모두 탐색해봄으로 해결했다. 2. sample_input의 2번 처럼, (sample 2) 2 6 5>--v. .^--_@ 탐색이 끝나지 않고 계속 돌아가는 상황이 생길 수 있다. -> cycle 생성 이는 bool visited[20][20][16][4] 4차원 배열을 통해 한 번 겪었던 상황이면 다시 겪지 않도록 해줬다. visited[r][c][mem][direction] == true? : r행 c열 번째 칸을 메모리에 mem 정수가 저장되어있고, 방향이 dir일때 방문했었다 라는 뜻. 코드) 123456789101112..
-
관계 데이터베이스?학교 수업/데이터베이스 2020. 4. 21. 19:22
이전 포스팅에서 다루지 못한 관계 데이터 모델에 대해 자세하게 설명하겠다. 관계데이터베이스의 구조 릴레이션(Relation) 으로 표현됨 - 릴레이션 이란? 데이터 구조를 테이블 형태로 표현한 것릴레이션 스키마와 릴레이션 인스턴스로 구성① 릴레이션 스키마 : 릴레이션의 논리적 구조를 정의하는 정적 구조② 릴레이션 인스턴스 : 어느 한 시점의 릴레이션 상태, 즉 튜플 전체를 의미하며 동적 구조 - 릴레이션 관련 용어① 튜플(Tuple) : 릴레이션에서 각각의 행(row)을 의미② 속성(Attiribute) : 릴레이션에서 각각의 열(column)을 의미③ 도메인(Domain) : 한 속성이 가질 수 있는 값의 집합④ 차수(Degree) : 릴레이션에서 속성의 개수⑤ 카디널리티(Cardinality) : 릴..
-
데이터베이스란?학교 수업/데이터베이스 2020. 4. 21. 17:11
데이터베이스(Database, DB) - 개념: 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합 통합, 저장, 공용 데이터- 특징① 실시간 접근성 : 질의 또는 조회에 대해 즉각적 응답② 계속적 변화 : 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지하면서 변화③ 동시 공유 : 여러 사용자가 동시에 같은 데이터에 접근 가능④ 내용 참조 : 데이터를 참조할 때 주소나 위치가 아닌 내용으로 접근 - 장점① 데이터 중복 최소화② 데이터 공유③ 최신의 데이터 유지④ 용이한 데이터 접근⑤ 데이터의 표준화 가능⑥ 데이터의 논리적, 물리적 독립성⑦ 데이터 저장 공간 절약⑧ 일관성, 무결성(데이터의 정확성과 일관성 유지 보증하는 것을 뜻함), 보안성 유지 - 단점① 데이터..
-
[SWEA] 2819번 격자판의 숫자 이어 붙이기문제 풀이 2020. 4. 20. 17:23
2819 격자판의 숫자 이어 붙이기 풀이)dfs를 이용해서 서로 다른 일곱 자리 수들을 구한 문제이다.숫자의 자릿수가 늘어날 때마다 *10씩 하는 게 귀찮아서아예 string으로 선언해 stoi()함수로 수를 쉽게 구했다. 첫번째 풀이에서 일곱 자리 수들의 개수를 bool visited[1000000]을 통해 확인해주었고,이는 메모리를 너무 잡아먹었다. 코드) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include #include #include #include #include using namespace std; int arr[4][4];int check[10..