분류 전체보기
-
[프로그래밍] 참조되는 것(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)을 가져야 합니다. 즉, 각 필드는 하나의 값만을 가져야 합니다. - **설명**: 테이블의 모든 컬럼이 단일 값을 가지도록 설계..
-
기능적 요구사항 vs 비기능적 요구사항전산학/소프트웨어공학 2024. 8. 1. 20:07
기능적 요구사항과 비기능적 요구사항은 소프트웨어 개발에서 중요한 개념입니다. 이 두 가지 요구사항은 시스템이 어떻게 작동해야 하는지와 시스템이 만족해야 하는 성능 및 품질 기준을 정의합니다. ### 기능적 요구사항 (Functional Requirements) 기능적 요구사항은 시스템이 수행해야 하는 특정 기능이나 작업을 정의합니다. 이러한 요구사항은 사용자가 시스템을 통해 무엇을 할 수 있는지를 설명하며, 시스템의 동작과 관련된 모든 측면을 다룹니다. **예시:** 1. **사용자 로그인:** 사용자가 사용자 이름과 비밀번호를 입력하여 시스템에 로그인할 수 있어야 한다. 2. **데이터 검색:** 사용자가 특정 키워드로 데이터베이스에서 정보를 검색할 수 있어야 한다. 3. **주문 처리:** 시스템은 ..
-
상향식 비용 산정기법 vs 하향식 비용 산정기법전산학/소프트웨어공학 2024. 8. 1. 20:06
비용 산정기법은 프로젝트 관리나 예산 수립 등에서 중요한 역할을 합니다. 상향식 비용 산정기법과 하향식 비용 산정기법은 각각 다른 접근 방식을 사용하여 비용을 추정하는 방법입니다. ### 상향식 비용 산정기법 (Bottom-Up Estimation) **개념:** 상향식 비용 산정기법은 프로젝트의 각 세부 작업이나 구성 요소의 비용을 개별적으로 추정한 후 이를 합산하여 전체 비용을 산정하는 방법입니다. 이 방법은 세부적인 작업 수준에서부터 시작하여 전체 프로젝트의 비용을 계산합니다. **장점:** 1. **정확성**: 각 작업이나 구성 요소의 비용을 구체적으로 계산하기 때문에 비교적 정확한 비용 산정이 가능합니다. 2. **세부 정보 제공**: 프로젝트의 각 부분에 대한 상세한 비용 정보를 제공하므로 예..
-
비즈니스 관리 용어: RTO, RPO, MTD, WRT, MTRS전산학/소프트웨어공학 2024. 8. 1. 20:05
RTO(Recovery Time Objective)는 IT와 비즈니스 연속성 관리에서 중요한 개념입니다. RTO는 시스템, 네트워크, 애플리케이션 등 주요 비즈니스 기능이 중단된 후 복구되어 정상적으로 작동하는 데 걸리는 최대 시간을 의미합니다. 이 시간 내에 복구가 이루어지지 않으면 비즈니스에 치명적인 손실이 발생할 수 있습니다. RTO와 비슷한 개념들로는 RPO(Recovery Point Objective), MTD(Maximum Tolerable Downtime), WRT(Work Recovery Time), MTRS(Mean Time to Restore Service) 등이 있습니다. 1. **RPO(Recovery Point Objective)**: 데이터 손실 허용 기간을 의미합니다. 시스템 ..
-
해킹 종류: 스키밍, 스니핑, SQL 인젝션, 파밍, 피싱전산학/정보보호 2024. 8. 1. 20:05
해킹 수법에는 다양한 방법이 존재하며, 각 방법은 주로 사용자의 정보를 탈취하거나 시스템을 무력화하는 것을 목표로 합니다. 스키밍, 스니핑, 파밍은 그 중 몇 가지 중요한 수법들입니다. 각각의 해킹 수법을 자세히 설명하겠습니다. ### 1. 스키밍 (Skimming) 스키밍은 카드 정보를 불법으로 복제하는 행위입니다. 주로 ATM기나 판매 시점(Point of Sale, POS) 단말기에서 사용됩니다. - **방법**: 공격자는 ATM기나 카드 리더기에 스키머(skhimmer)라는 작은 장치를 설치합니다. 이 장치는 사용자가 카드를 삽입할 때 카드의 자기띠 정보를 복사합니다. 동시에, PIN 번호를 얻기 위해 키패드에 카메라를 설치하거나, 가짜 키패드를 덧붙여 사용자의 입력을 기록합니다. - **목적**..