전체 글

개인공부/소프트웨어 공학

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 ..

백준

백준 1735번: 분수 합 (C언어)

백준 1735번: 분수 합 링크 https://www.acmicpc.net/problem/1735 문제를 풀기 전 생각한 것 통분 후 약분하기 풀면서 어려웠던 점 처음에는 약분 후 통분을 할 생각이었지만 복잡해져서 통분 후 약분을 했다 코드 #include int main(void) { int a1, b1, a2, b2; int ans1, ans2; int cnt; scanf("%d %d", &a1, &b1); scanf("%d %d", &a2, &b2); ans1 = a1 * b2 + a2 * b1; ans2 = b1 * b2; cnt = 2; while (cnt

백준

백준 13241번: 최소공배수 (C언어)

백준 13241번: 최소공배수 링크 https://www.acmicpc.net/problem/13241 문제를 풀기 전 생각한 것 최소공배수를 보니 저번에 했던 유클리드 호제법이 바로 생각났다 풀면서 어려웠던 점 재귀함수를 따로 만들기 싫어서 while 문을 사용했는데 이 과정에서 생각을 많이 했다 코드 #include int main(void) { long long int A, B; long long int ans; scanf("%lld %lld", &A, &B); long long int mul = A*B; while(1) { if (B == 0) { printf("%lld", mul/A); break; } else { ans = A % B; A = B; B = ans; } } return 0; } ..

NamDoHyeon
뉴비 개발자