전산학
-
시퀀스 다이어그램, 액티비티 다이어 그램, 상태 다이어그램, 협력 다이어그램전산학/소프트웨어공학 2024. 8. 23. 02:57
시퀀스 다이어그램, 액티비티 다이어그램, 상태 다이어그램, 협력 다이어그램은 UML(Unified Modeling Language)에서 객체 지향 시스템을 모델링하기 위한 다양한 도구입니다. 각각의 다이어그램은 시스템의 다른 측면을 시각화하는 데 사용됩니다. 예시를 들어 설명하겠습니다.1. 시퀀스 다이어그램 (Sequence Diagram)설명: 시퀀스 다이어그램은 객체 간의 메시지 교환을 시간 순서에 따라 나타냅니다. 주로 시스템의 동작을 설명하거나 특정 시나리오를 문서화하는 데 사용됩니다.예시: 온라인 쇼핑몰에서 고객이 상품을 구매하는 시나리오Customer | ShoppingCart | PaymentService | OrderService------------..
-
[클라우드 컴퓨팅] IaaS, PaaS, SaaS 제대로 이해하기전산학/데이터통신 2024. 8. 18. 00:19
𝐈𝐧𝐭𝐫𝐨클라우드 컴퓨팅 서비스 모델은 IaaS, PaaS, SaaS로 구분할 수 있다. 주어진 IT 서비스를 어떻게 제공하냐에 따라 분류되는데 각각의 특징과 예시, 그리고 장단점을 알아보자. ■ 클라우드 컴퓨팅(Cloud Computing)이란? 클라우드 컴퓨팅(Cloud Computing)은 인터넷(클라우드)을 통해 컴퓨팅 자원(서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등)을 제공하고 사용하는 기술이다. 전통적으로는 개인이나 기업이 자체적으로 하드웨어와 소프트웨어를 구입하고 유지보수했지만, 클라우드 컴퓨팅을 사용하면 이러한 자원을 필요할 때마다 인터넷을 통해 서비스로 사용할 수 있다. ■ IaaS(Infrastructure as a Service) ■ PaaS(..
-
[C, Java, Python] 피보나치 수열(Fibonacci numbers) 코드로 이해하기전산학/프로그래밍 2024. 8. 13. 01:35
피보나치 수열을 C 언어로 구현하는 방법에는 여러 가지가 있지만, 가장 기본적인 방법은 재귀와 반복문을 사용하는 것입니다. 아래에는 두 가지 방법을 소개하겠습니다.1. 반복문을 이용한 피보나치 수열 구현이 방법은 효율적이며, 메모리 사용량이 적습니다.#include // 피보나치 수열을 반복문으로 계산void fibonacci(int n) { int a = 0, b = 1, next; printf("Fibonacci series up to %d terms:\n", n); for (int i = 0; i 설명:fibonacci 함수는 피보나치 수열의 처음 n개의 항을 출력합니다.a와 b는 피보나치 수열의 첫 두 항(0과 1)을 저장합니다.반복문을 통해 피보나치 수열을 계산합니다. next는..
-
[C, Java, Python] 하노이의 탑(Tower of Hanoi) 코드 시리즈전산학/프로그래밍 2024. 8. 13. 01:29
하노이의 탑 문제는 다음과 같은 규칙을 가진 퍼즐입니다:세 개의 기둥(A, B, C)과 여러 개의 원판이 있습니다.원판은 크기가 다르며, 작은 원판이 큰 원판 위에 놓일 수는 없습니다.처음에는 모든 원판이 기둥 A에 쌓여 있습니다.목표는 모든 원판을 기둥 C로 옮기는 것입니다, 단, 한 번에 하나의 원판만 옮길 수 있으며, 각 원판은 항상 위쪽에 있는 원판보다 작은 원판 위에만 놓일 수 있습니다.하노이의 탑 문제를 해결하기 위한 C 코드를 작성하고 설명하겠습니다. ■ 하노이의 탑 문제를 해결하는 C 코드#include // 하노이의 탑을 해결하는 재귀 함수void hanoi(int n, char from, char to, char aux) { if (n == 1) { // 원판이 하나만..
-
[프로그래밍] 참조되는 것(Referenced), 참조하는 것(Referencing) 제대로 구분하기전산학/프로그래밍 2024. 8. 13. 00:59
𝐈𝐧𝐭𝐫𝐨컴퓨터공학에서 개발을 공부하다 보면 '참조(호출)'에 대한 얘기가 자주 나온다. 다만, 대상에 따라 참조되는 것(Referenced)와 참조하는 것(Referencing)이 의미가 달라서 매번 헷갈린다. 두 개념이 서로 상호 연관되어 있지만 방향성이 다르기 때문이다. 명확하게 구분해보자. ■ 한글 말고 영어로 외우자: Referenced, Referencing참조되는 것은 Referenced이다. 즉, 특정 모듈이나 컴포넌트가 다른 모듈이나 컴포넌트에 의해 참조되는 것을 의미한다. 즉, 참조되는 모듈은 다른 모듈에게 기능을 제공한다.예) 모듈 A가 모듈 B의 기능을 사용하는 경우, 모듈 B는 모듈 A에 의해 참조되는 것 참조하는 것은 Referencing이다. 특정 모듈이나 컴포넌트..
-
팬인(Fan-In), 팬아웃(Fan-Out) 제대로 이해하기 (Feat. "X" a.k.a Twitter Architecture)전산학/소프트웨어공학 2024. 8. 13. 00:24
𝐈𝐧𝐭𝐫𝐨 팬인(Fan-In), 팬아웃(Fan-Out) 개념은 누구나 정보처리기사를 준비하면서 쉽다고 느꼈을 내용이다. 그러나 이 내용이 왜 나왔는지, 실무에 어떻게 적용되는지는 잘 모르는 사람들이 많다. 이 글에서는 팬인, 팬아웃에서 '팬'의 의미, 그리고 실제 아키텍쳐에 어떻게 적용되는지 설명해본다. ■ 팬(Fan)이란?사실 팬인(Fan-In), 팬아웃(Fan-Out) 용어는 전자공학, 디지털 회로 설계에서 시작된 용어이다. 여기서 팬(Fan)은 회로나 시스템에서 신호가 분배되거나 집합되는 것을 의미한다. 선풍기나 환풍기에서 볼 수 있는 팬(Fan)에서 신호가 분산되거나 집중되는 모습을 연상할 수 있어 이름을 붙인 것으로 보인다. 팬인(Fan-In)은 하나의 게이트가 여러 입력을 받을 수 있는 최대 ..
-
JAVA 오버라이딩(Overriding)과 오버로딩(Overloading) 비교전산학/프로그래밍 2024. 8. 1. 20:08
오버라이딩(Overriding)과 오버로딩(Overloading)은 자바에서 다형성을 구현하는 두 가지 주요 방법입니다. 이 두 개념을 이해하기 위해 예제 코드를 통해 설명하겠습니다. ### 오버라이딩(Overriding) 오버라이딩은 부모 클래스에 정의된 메서드를 자식 클래스에서 재정의하는 것입니다. 이를 통해 자식 클래스는 부모 클래스의 메서드를 자신의 방식으로 동작하게 할 수 있습니다. ```java // 부모 클래스 class Animal { void sound() { System.out.println("동물이 소리를 냅니다."); } } // 자식 클래스 class Dog extends Animal { @Override void sound() { ..
-
데이터베이스 정규화전산학/데이터베이스 2024. 8. 1. 20:07
데이터베이스 정규형(Normal Forms)은 데이터베이스 설계에서 데이터 중복을 최소화하고 일관성을 유지하기 위해 사용되는 규칙의 집합입니다. 각 정규형은 특정한 조건을 만족하도록 요구하며, 이러한 조건을 만족시키면 데이터베이스의 구조가 개선되고 효율적인 데이터 저장 및 검색이 가능합니다. 주요 정규형에는 제1정규형(1NF), 제2정규형(2NF), 제3정규형(3NF), 보이스-코드 정규형(BCNF), 제4정규형(4NF), 제5정규형(5NF)이 있습니다. ### 제1정규형 (1NF: First Normal Form) - **조건**: 모든 필드는 원자값(atomic value)을 가져야 합니다. 즉, 각 필드는 하나의 값만을 가져야 합니다. - **설명**: 테이블의 모든 컬럼이 단일 값을 가지도록 설계..