전체 글

데이터베이스

데이터베이스 관리 시스템

데이터베이스 관리 시스템의 등장 배경 과거에는 파일 시스템이라는 소프트웨어를 이용. 데이터를 파일로 관리할 수 있도록 파일을 생성·삭제·수정·검색하는 기능을 제공. 응용 프로그램별로 필요한 데이터를 별도의 파일로 관리. 하지만 파일 시스템은 문제가 많았다. 같은 내용의 데이터가 여러 파일에 중복 저장 (데이터 중복성) : 저장 공간 낭비, 데이터 일관성, 무결성 유지 어려움. 응용 프로그램이 데이터 파일에 종속적 (데이터 종속성) : 파일의 구조를 변경하는 응용 프로그램도 함께 변경. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족. 응용 프로그램 개발 어려움. 데이터베이스 관리 시스템의 정의 데이터베이스 관리 시스템 (DBMS) 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제..

데이터베이스

데이터베이스 기본 개념

데이터베이스의 필요성 데이터 : 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값으로 자료라고도 한다. 정보 : 데이터를 의사 결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 조직한 결과물. 가치 있는 정보를 얻으려면 현재 상황을 정확히 관찰하고 측정하여 의미 있는 데이터를 많이 수집해야 한다. 그리고 수집한 데이터를 효율적으로 저장했다가 필요할 때 언제든 사용할 수 있어야 한다. 따라서 유용하게 활용할 수 있는 정보를 정확히 추출할 수 있도록 데이터를 대신 관리해 주는 데이터베이스가 필요하다. 데이터베이스의 정의와 특징 데이터베이스 : 특정 조직의 여러 사용자가 '공유'하여 사용할 수 있도록 '통합'해서 '저장'한 '운영' 데이터의 집합. 데이터베이스의 정의 4가지 공유 데이터 : 특정..

소프트웨어 공학

UML과 유스케이스 다이어그램

UML UML(Unufied Modeling Language) : 12개의 다이어그램으로 소프트웨어의 전체 윤곽을 알 수 있음. 즉, UML은 시스템이 상호작용하는 측면, 시스템 전체 구조 측면, 컴포넌트 간의 관계 등을 시각적으로 볼 수 있게 나타낸 도면이다. UML의 다이어그램 종류 : 크게는 구조 다이어그램, 행위 다이어그램, 상호작용 다이어그램으로 나뉜다. 구조 다이어그램 : 클래스, 객체, 복합 구조, 배치, 컴포넌트, 패키지 행위 다이어그램 : 활동, 유스케이스, 상태 머신 상호작용 다이어그램 : 순차, 통신, 타이밍 유스케이스 다이어그램 객체지향 방법의 유스케이스 다이어그램은 시스템이 제공하는 기능을 나타내는 유스케이스와 이 기능을 사용하는 사용자인 액터 그리고 이 둘의 관계로 나타낸다. 유..

HTML/Google 클론

구글 클론 만들어보기 ! ( 1 )

구글 클론 사이트를 만들 것에요. 일단 결과물을 먼저 보여드릴게요. 어때요 정말 간단해 보이죠? 자 그럼 지금부터 시작할게요 잘 따라와 주세요~! 우리는 총 3번에 걸쳐 구글 클론 사이트를 완성시킬 거예요 첫 번째 글에서는 상단에 있는 Gmail, 이미지, 메뉴, 프로필을 만들어볼게요 저는 코드를 VsCode에서 작성했어요 VsCode는 느낌표를 입력하고 탭을 누르면 HTML 서식이 자동으로 만들어지더라고요 원래는 html lang가 en이지만 우리는 사이트에서 한글을 주로 사용하니 ko로 바꿔주세요 그리고 title부분을 변경하면 아래 사진처럼 바꿀 수 있어요! 원하는 제목으로 바꿔주세요 이제 사이트 색이랑 글을 넣어야겠죠? body의 스타일을 바꾸면 전체적인 사이트를 바꿀 수 있어요 저는 구글을 다크..

C

배열

배열 배열 자료형이 같은 변수의 집합을 숫자를 이용해 관리할 수 있다. 배열을 선언할 때는 자료형 변수명 [요소 개수] 이렇게 하면 된다. 단, [] 안은 상수여야 한다. 만약 int a[4]를 선언했으면 a[0]부터 a[3]까지 선언된 것이다. 배열 초기화 배열 초기화는 배열에 값들을 지정해준다. 초기화 값은 대입할 수 없으며 배열의 요소 개수보다 많으면 오류가 발생한다. // 방법 1 int main(void) { int a[5] = {1,2,3,4,5}; return 0; } // 방법 2 int main(void) { int a[] = {1,2,3,4,5}; return 0; } // 배열 a[0] == 1, a[1] == 2 ... a[4]에는 5가 초기화된다. int main(void) { i..

C

반복문

반복문 반복문 do C언어에서 do는 실행하라는 의미를 가지고 있다. do문의 형태는 이렇다. int main(void) { int banbok; do { printf("실행"); printf("계속 실행할거면 0 종료할거면 9"); scanf("%d", &banbok); } while(banbok == 0); return 0; } // while() 괄호 안의 조건식이 성립하면 다시 do문을 실행한다.while C언어에서 while은 ~하는 동안이라는 의미를 가지고 있다. while문의 형태는 이렇다. int main(void) { int i=1; while(i

C

조건문

조건문 조건문 if C언어에서 if문은 영어 단어와 같이 만약 ~라면 이라는 뜻이다. 이는 제어식을 평가해 결과가 참이면 구문을 실행하고 거짓이면 멈추거나 다음으로 넘어간다. if문은 중첩 시킬 수도 있다. 예시 int a = 10; if (a < 15) printf("정답"); //제어식이 거짓이기 때문에 정답이 출력되지 않는다.else위의 예시에서 오답을 출력하고 싶다면 else를 넣고 구문을 넣으면 된다. 예시 int a = 10; if (a < 15) printf("정답"); else printf("오답");이렇게 else를 넣으면 두 구문 중 하나는 무조건 실행된다. switch문과 break switch문은 괄호 안의 들어간 정수를 case의 레이블과 비교해 같으면 구문을 실행하는 구조다. s..

C

연산과 자료형

연산과 자료형 연산자 연산자와 피연산자 여러 연산을 위해 사용하는 기호를 연산자라고 한다. 그리고 이러한 연산에서 사용되는 변수나 상수를 피연산자라고 한다. 예를 들어 1 + 2에서는 1은 제1피연산자 또는 왼쪽 피연산자라고 하고 +는 연산자 나머지 2는 제2피연산자 또는 오른쪽 피연산자라고 한다. 덧셈과 뺄셈 모두가 알고 있듯 덧셈은 + 연산자 빼기는 - 연산자를 사용한다. 곱셈과 나눗셈 곱셈은 * 연산자를 사용한다. 나눗셈에는 몫과 나머지가 있다. C 프로그램에서 구현하려면 몫을 구하는 / 연산자를 사용하고 나머지를 구하는 연산자는 % 연산자를 사용한다. 연산 순서 만약 연산 순서를 바꾸고 싶다면 ( ) 를 사용하면 된다. 예를 들어 x + y * 2 와 (x + y) * 2 의 식이 있다고 했을 때..

C

C언어 기초 개념과 단어 정리

C언어를 시작하려면 파일확장자는. c를 사용해야 한다. 주석이란 소스 프로그램 안에 읽는 사람에게 뭔가 전하려는 메시지를 넣고 싶을 때 사용한다. 보통 // 할 말 또는 /* 할 말 */ 을 사용한다. 함수란 예를 들면 함수라는 도시락을 만들어두고 함수 호출을 하면 도시락을 먹는 원리이다. 이는 간단하고 빠르게 프로그램을 만들 때 유용하다. 문자열을 출력하고 싶다면 printf() 함수를 사용한다. 예를 들면 printf("1 + 1 = %d\n", 2); 이렇게 사용한다. 여기서 큰따옴표를 포함한 안에 있는 인수를 형식 문자열이라고 하고 형식 문자열 안에 있는 %d 같은 것들이 형식 지정자이다. 형식 문자열 안에 있는 문자는 그대로 출력되지만, 형식 지정자는 그렇지 않고 뒤에 2가 출력된다. 위 형식 ..

백준

백준 2485번: 가로수 (C언어)

백준 2485번: 가로수 링크 https://www.acmicpc.net/problem/2485 문제를 풀기 전 생각한 것 가로수 사이의 거리 = 다음 가로수 - 가로수 가로수 사이 거리의 최대공약수를 처음 위치에 더함 풀면서 어려웠던 점 최대공약수를 구하는 함수를 따로 만들기 싫었지만 어쩔 수 없이 만들었다. 코드 #include int tree[100000]; int distance[100000]; int make_gcd(int a, int b) { if (b == 0) { return a; } else { return make_gcd(b, a % b); } } int main(void) { int N; int cnt = 0; int gcd = 0; scanf("%d", &N); for (int i ..

NamDoHyeon
뉴비 개발자