IT 200

[필기] 통신 시스템

Q)  하나의 정보를 여러 개의 반송파로 분할하고, 분할된 반송파 사이의 주파수 간격을 최소화하기 위해 직교 다중화해서 전송하는 통신방식으로, 와이브로 및 디지털 멀티미디어 방송 등에 사용되는 기술은? 1) TDM 2) DSSS 3) OFDM 4) FHSS  해설)OFDM- 직교분할 다중화 (Orthogonal Frequency Division Multiplexing) - 하나의 정보를 여러개의 반송파로 분할하고, 분할된 반송파 사이의 주파수 간격을 최소화하기 위해 직교 다중화해서 전송하는 통신방식- 와이브로 및 디지털 멀티미디어 방송 등에 사용되는 기술  프로그래밍 언어 활용25년 필기 1회차 1261번TDM (Time Division Multiplexing) - 시간 분할 다중화 기술- 하나의 통신 ..

[필기] 페이지 교체 기법

Q)  다음의 페이지 참조 열(Page Reference String)에 대해 페이지 교체 기법으로 선입선출 알고리즘을 사용할 경우 페이지 부재(Page Fault) 횟수는? (단, 할당된 페이지 프레임 수는 3이고, 처음에는 모든 프레임이 비어 있다.)   프로그래밍 언어 활용 25년 필기 1회차 1154번 페이지 참조 열(Page Reference String) - 프로그램이 메모리에 접근할 때 참조하는 페이지 번호의 순서를 나열한 것- 예)   [1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5]페이지 교체 기법- 메모리의 페이지 프레임이 가득 찼을 때, 새로운 페이지를 올리기 위해 기존 페이지 중 하나를 교체하는 방법페이지 부재(Page Fault) - CPU가 요청한 페이지가 메모리..

[필기] 라우팅 프로토콜

Q) 다음이 설명하고 있는 라우팅 프로토콜은? 내부 라우팅 프로토콜이며 링크 상태 알고리즘을 사용하는 대규모 네트워크에 적합하다1) BGP 2) RIP 3) OSPF 4) EGP  해설) BGP (Border Gateway Protocol)    - 외부 라우팅 프로토콜로, 주로 서로 다른 네트워크 도메인 간의 라우팅 정보를 교환하는데 사용된다. RIP (Routing Information Protocol)    - 내부 라우팅 프로토콜로, 거리 벡터 알고리즘을 사용하며 작은 네트워크에 적합하다. OSPF (Open Shortest Path First)    - 링크 상태 알고리즘을 사용하는 내부 라우팅 프로토콜로, 특히 대규모 네트워크에 적합하다 EGP (Exterior Gateway Protocol)..

[필기] UDP

Q)  UDP(User Datagram Protocol)에 대한 설명으로 거리가 먼 것은? 1) 데이터 전달의 신뢰성을 확보한다. 2) 비연결형 프로토콜이다. 3) 복구 기능을 제공하지 않는다. 4) 수신된 데이터의 순서 재조정 기능을 지원하지 않는다.   프로그래밍 언어 활용25년 필기 1회차 1318번  UDP - 사용자 데이터그램 프로토콜 (User Datagram Protocol, UDP) - 보안과 신뢰성보다 전송 속도와 효율성이 더 중요한 경우 데이터를 전송하기 위해 IP와 함께 오래 사용된 프로토콜- UDP는 최소한의 프로토콜 메커니즘을 갖춘 간단한 무연결 통신 모델을 사용한다- UDP는 데이터 무결성을 위한 checksums 및 데이터그램의 소스 및 대상에서 다양한 기능을 처리하기 위한 포..

[필기] IP주소

Q) IP주소에서 1개의 C-class는 32비트의 길이로 8비트 호스트 식별자를 갖는다. 이 때 최대 몇 개의 호스트 주소를 가질 수 있는가? 1) 128개 2) 254개 3) 1024개 4) 4096개  해설)C클래스 IP 주소는 32비트 길이를 가지며,이 중 마지막 8비트가 호스트 식별자로 사용된다.8비트는 총 2⁸=256개의 가능한 조합을 만들 수 있지만,이 중 두 개의 주소는 특별한 용도로 예약되어 있다.두 개의 주소는 네트워크 주소와 브로드캐스트 주소로, 두 개를 제외한 254개의 호스트 주소를 가질 수 있다.  프로그래밍 언어 활용25년 필기 1회차 1277번 1. 네트워크 클래스의 등장 배경- IPv4 체계의 IP 주소를 사용해 왔기 때문에 이미 인프라가 IPv4 환경으로 구축되어 있다.-..

log 패키지

-  Go 언어의 표준 라이브러리로, 로그 메시지를 기록하는 데 사용된다- 다양한 로그 메시지 형식을 지원하며, 로그 메시지를 파일, 표준 출력, 표준 오류 출력 등으로 보낼 수 있다. https://pkg.go.dev/log log package - log - Go PackagesDiscover Packages Standard library log Version: go1.23.5 Opens a new window with list of versions in this module. Published: Jan 16, 2025 License: BSD-3-Clause Opens a new window with license information. Imports: 8 Opens a new window with ..

IT/Go 2025.01.30

defer

- Go에서 함수 호출이 종료될 때까지 실행을 미루는 데 사용되는 키워드- 함수 종료 시점에 실행된다.- 함수가 끝나기 전에 특정 코드가 실행되도록 예약할 수 있다.- 주로 자원 해제, 파일 닫기, 락 해제 등 "정리 작업"을 수행하는 데 사용된다.- 여러 개의 defer는 LIFO 방식으로 실행된다.- defer는 함수가 return을 만나기 전에 실행되는 코드의 예약을 설정한다- defer로 예약된 함수는, return이 실행된 후, 현재 함수의 스택이 모두 정리된 후에 호출된다.package mainimport "fmt"func myFunction() { defer fmt.Println("Deferred message") // return 전에 이 코드가 실행됨 fmt.Println("..

IT/Go 2025.01.30

메서드 리시버

func (리시버 변수명 리시버 타입) 메서드 이름(입력 파라미터) 출력값 { // 함수 본문} - Go언어에서 메서드리시버는 함수가 특정 타입에 속하도록 하는 기능- 메서드 리시버는 함수 이름 앞에 위치- 함수가 특정 타입의 메서드임을 나타낸다- 이를 통해 해당 타입의 인스턴스에서 메서드를 호출할 수 있다. 예)type MySQLDAO struct { db *sql.DB}func (dao *MySQLDAO) Close() error { if err := dao.db.Close(); err != nil { return fmt.Errorf("failed to close MySQL connection: %v", err) } return nil}func main() { ..

IT/Go 2025.01.29

Golang Live Reloading command line utility

Go 프로그램은 컴파일된 실행 파일로 실행되기 때문에 소스 코드를 수정할 때마다 프로그램을 다시 실행해야 변경 사항이 반영된다.이를 위해 go run  명령을 사용하여 프로그램을 다시 실행해야 한다.하지만 개발 중에는 파일이 수정될 때 자동으로 프로그램을 다시 실행해주는 도구를 사용할 수 있다.reflex 또는 air와 같은 도구를 사용하면 파일이 변경될 때 자동으로 프로그램을 다시 실행할 수 있다.파일 변경을 감지하고 자동으로 프로그램을 다시 실행해주므로, 개발 중에 매우 유용하다. Air와 ReflexAir는 보통 실시간 스트리밍과 관련된 라이브러리로 사용되며, 실시간으로 사용자 인터페이스를 업데이트하고 처리하는 데 도움을 준다. Air는 대개 Go 언어와 함께 사용되며, 실시간 통신에 최적화된 라이..

IT/Go 2025.01.23

RestTemplate WebClient RestClient

Spring Framework에서 HTTP 요청을 처리하기 위해 사용할 수 있는 주요 클라이언트는 RestTemplate, WebClient, 그리고 RestClient 이다.1. RestTemplate- 동기식 HTTP 클라이언트: 요청을 보내고 응답을 받을 때까지 블로킹된다- 간단하고 직관적인 API: 사용하기 쉽고, 간단한 HTTP 요청을 처리하는 데 적합하다. - Spring 5.0 이후로는 더 이상 새로운 기능이 추가되지 않음: 유지보수는 계속되지만, 새로운 기능은 추가되지 않는다. - 기존 코드와의 호환성: 많은 기존 프로젝트에서 사용되고 있으며, 기존 코드와의 호환성이 중요할 때 유용하다- Spring 5.0 이후로는 더 이상 새로운 기능이 추가되지 않으며, WebClient로 대체될 예정이..

IT/Spring 2025.01.23

[필기] 데이터베이스 시스템 카탈로그

Q) 데이터베이스 시스템 카탈로그의 구성요소가 아닌 것은? 1) SYSCOLUMNS 2) SYSTABLES 3) SYSCONTENTS 4) SYSVIEW  해설) 시스템 카탈로그의 구성요소는 SYSTABLES, SYSCOLUMNS, SYSVIEW, SYSTABAUTH, SYSCOLAUTH이다.  데이터베이스 구축25년 필기 1회차 794번- 시스템 카탈로그는 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스- 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다. - 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구..

Java Spring Boot 애플리케이션에서 Go REST API 호출

Java 프로젝트에 Go 코드를 직접 합치는 것은 어렵지만, 두 언어로 작성된 애플리케이션을 함께 사용할 수 있는 방법은 있다.가장 일반적인 방법은 Java 애플리케이션과 Go 애플리케이션을 각각 독립적으로 실행하고, 서로 RESTful API를 통해 통신하게 하는 것이다. Java Spring Boot 애플리케이션 설정: - 기존의 Spring Boot 애플리케이션을 유지- 필요한 경우, Spring Boot 애플리케이션에서 Go 애플리케이션의 API를 호출할 수 있도록 RestTemplate 또는 WebClient를 설정Go 애플리케이션 설정: - 앞서 설명한 대로 Go 애플리케이션을 설정하고 RESTful API를 구현 Java 애플리케이션에서 Go 애플리케이션 호출: - Java 애플리케이션에서 ..

IT/Go 2025.01.22

[필기] 소프트웨어 설계 디자인 패턴

Q)  다음 상황에 적용하기에 가장 적절한 디자인 패턴은?- 장기 게임을 하는 프로그램에서 사용자의 선택에 맞추어서 특정 루틴의 레벨을 간단하게 교체할 수도 있다.- 메모리가 적은 환경에서는 속도는 느리지만 메모리를 절약하는 알고리즘을 사용하고, 메모리가 많은 환경에서는 속도는 빠르지만 메모리를 많이 사용하는 알고리즘을 사용한다.- 스프레드시트 소프트웨어의 디버그 판에서 복잡한 계산을 실행할 때, '버그가 있을지도 모르는 고속의 알고리즘'과 '저속이지만 확실한 계산을 실행하는 알고리즘'을 준비해서 전자의 검산을 후자로 실행시킨다.1) Strategy 패턴 2) Observer 패턴 3) Command 패턴 4) Decorator 패턴 해설)- Strategy 패턴은 객체가 할 수 있는 특정 행위나 알고리..

[필기] 엔티티 Entity

Q) 정보를 송수신할 수 있는 능력을 가진 개체로써, 주어진 입력에 대하여 어떤 기능을 수행하고 출력하는 것은? 1) 데이터(Data) 2) 엔티티(Entity) 3) 프로토콜(Protocol) 4) 스테이트(State)  해설)- 일반적으로 엔티티는 데이터를 포함하거나 처리할 수 있는 구조체나 객체를 의미한다- 엔티티는 정보를 송수신할 능력을 가지고 있으며, 주어진 입력을 기반으로 특정 기능을 수행하고 결과를 출력할 수 있다- 데이터는 단순히 정보의 집합이며, 스스로 기능을 수행하거나 입력을 처리하지 않는다- 프로토콜은 통신 규약이나 데이터 교환 방식을 정의한 것이다- 스테이트는 시스템의 특정 시점에서의 상태를 나타낸다   소프트웨어 설계25년 필기 1회차 287번

[필기] 소프트웨어 개발 - 모델 Model

Q) 소프트웨어 개발에 이용되는 모델(Model)에 대한 설명 중 거리가 먼 것은? 1) 모델은 개발 대상을 추상화하고 기호나 그림 등으로 시각적으로 표현한다. 2) 모델을 통해 소프트웨어에 대한 이해도를 향상시킬 수 있다. 3) 모델을 통해 이해 당사자 간의 의사소통이 향상된다. 4) 모델을 통해 향후 개발될 시스템의 유추는 불가능하다. 해설)모델은 개발 대상을 추상화하고 시각적으로 표현하는 도구이다.모델은 소프트웨어에 대한 이해도를 높이고, 이해 당사자 간의 의사소통을 향상시키는 역할을 하며,향후 개발될 시스템을 예측하고 유추하는 데에도 활용될 수 있다.  [소프트웨어 설계][25년 필기 1회차 81번]

[필기] 소프트웨어 아키텍처

Q) 다음 설명에 해당하는 아키텍처는?네트워크의 어떠한 노드라도 주어진 연산을 수행할 수 있는 비중앙집중적인(Decentrailized) 아키텍처로, 서버와 클라이언트의 구분이 없다. 별도의 중앙 서버 없이 사용자의 PC 사이에서 파일을 주고받기 위한 파일 공유 네트워크 등이 이에 해당한다.1) 마이크로 서비스(Micro Service) 아키텍처 2) 분산 컴포넌트(Distributed Component) 아키텍처 3) 서비스 지향(Service Oriented) 아키텍처 4) 피어 투 피어(Peer-to-Peer) 아키텍처 해설)피어 투 피어 네트워크는 각 노드가 동등한 역할을 하여 네트워크에 참여하는 구조를 가지며, 파일 공유 서비스에 자주 사용된다.  [소프트웨어 설계][25년 필기 1회차 164번..

[필기] 애자일(Agile) 프로세스 모델

Q) 애자일(Agile) 프로세스 모델에 대한 설명으로 틀린 것은? 1) 변화에 대한 대응보다는 자세한 계획을 중심으로 소프트웨어를 개발한다. 2) 프로세스와 도구 중심이 아닌 개개인과의 상호소통을 통해 의견을 수렴한다. 3) 협상과 계약보다는 고객과의 협력을 중시한다. 4) 문서 중심이 아닌, 실행 가능한 소프트웨어를 중시한다. Agile Software Development - 애자일(Agile) 방법론은 소프트웨어 개발방법론의 하나로서 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다.- 프로세스와 도구 중심이 아닌 개개인과의 상호소통을 통해 의견을 수렴한다. - 협상과 계약보다는 고객과의 협력을 중시한다. - 문서 중심이 아닌, 실행 가능한 소프트웨어를 중시한다.  - 프로젝트의 요구..