일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 마니토바
- 머신러닝
- mpnp
- C++
- LAA
- 방통대
- machine learning
- 매트랩
- zeros
- 컴퓨터과학과
- LV1
- Deep learning
- MATLAB
- 기본
- leetcode
- 캐나다 영주권
- 코딩테스트
- 프로그래머스
- cpp
- 선형대수
- omscs
- 방송통신대학교
- 딥러닝
- 알고리즘
- 조지아텍
- 개발자
- Plotting
- EOI
- 주정부이민
- 온라인석사
- Today
- Total
목록전체 글 (137)
Krononberg
"Information Hiding"은 소프트웨어 공학에서 중요한 디자인 원칙 중 하나로, 데이터나 시스템의 내부 작업을 외부로부터 숨기는 것을 의미합니다. 이 원칙의 핵심 목적은 시스템의 특정 부분에 대한 변경이 다른 부분에 미치는 영향을 최소화하는 것입니다. Information Hiding의 주요 특징 및 이점은 다음과 같습니다: 1. 모듈화: 시스템의 각 모듈은 그것의 내부 구현을 숨기고, 오직 정의된 인터페이스를 통해서만 다른 모듈과 상호 작용합니다. 2. 유연성: 내부 구현의 세부 사항이 숨겨져 있기 때문에 필요한 경우 그 부분만 변경하면 됩니다. 이러한 변경이 다른 모듈에 영향을 미치지 않도록 보장됩니다. 3. 재사용성: 내부 세부 사항이 외부로부터 잘 숨겨져 있으면, 해당 모듈이나 클래스는..
소프트웨어 공학에서 "커플링(Coupling)"은 두 모듈이나 시스템 구성 요소가 얼마나 밀접하게 연결되어 있는지를 나타내는 지표입니다. 이러한 연결성은 정보 공유, 변수 접근, 모듈 간 호출 등 다양한 형태로 나타날 수 있습니다. 커플링의 주요 특징은 다음과 같습니다: 낮은 커플링 (Low Coupling): 두 모듈 사이의 의존성이 최소화된 상태. 낮은 커플링은 소프트웨어의 재사용성과 유지 보수성을 향상시키는 데 도움이 됩니다. 높은 커플링 (High Coupling): 두 모듈 사이에 강한 의존성이 있는 상태. 높은 커플링은 시스템의 유연성을 저하시키고, 한 모듈에서의 변경이 다른 모듈에 문제를 일으킬 가능성이 있습니다. 커플링을 줄이려는 노력은 소프트웨어의 모듈성을 향상시키고, 각 모듈을 독립적으..
1. Independence of Validators (검증자의 독립성): - 검증자의 독립성은 디자인 검증의 효율성과 신뢰성을 보장하기 위해 중요합니다. - 독립적인 검증자는 설계자의 편견 없이 작업을 평가할 수 있으며, 이로 인해 누락되거나 간과된 문제점을 보다 쉽게 식별할 수 있습니다. - 반대로, 설계자와 너무 밀접하게 연결된 검증자는 중요한 문제점을 놓칠 수 있습니다. 2. Dependence on Design Method (설계 방법에 대한 의존성): - 특정 설계 방법에 너무 많이 의존할 경우, 그 방법의 제한사항이나 단점이 검증 과정에 영향을 미칠 수 있습니다. - 다양한 설계 방법론과 도구를 사용하는 것이 좋으며, 상황에 따라 가장 적합한 방법을 선택하는 것이 중요합니다. 3. On-go..
소프트웨어 디자인에 접근할 때 고려해야 할 여러 가지 원칙과 절차가 있습니다. 효과적인 소프트웨어 디자인 접근법을 채택하면, 소프트웨어의 품질, 확장성, 유지 보수성, 그리고 성능이 향상될 수 있습니다. 아래는 소프트웨어 디자인에 접근할 때 고려해야 할 핵심 사항들입니다: 요구 사항 이해하기: 설계를 시작하기 전에 사용자 및 시스템 요구 사항을 완전히 이해하는 것이 중요합니다. 모든 스테이크홀더와의 의사소통은 요구 사항의 누락 또는 오해를 방지하는 데 중요합니다. 모듈화와 분리 (Modularity and Separation): 복잡한 문제를 더 작고 관리 가능한 모듈로 분리하여 문제를 단순화합니다. 이는 재사용성을 높이고 코드의 유지 보수성을 향상시킵니다. 추상화 (Abstraction): 복잡성을 관..
"Software design"은 소프트웨어의 구조와 동작을 계획하고 정의하는 과정입니다. 소프트웨어 개발의 초기 단계에서 이루어지며, 개발자들이 구현할 소프트웨어의 아키텍처, 컴포넌트, 인터페이스, 데이터 모델 및 기타 시스템 구성 요소를 결정하는 데 도움을 줍니다. Software design은 크게 두 가지 주요 영역으로 나뉩니다: 고수준 디자인 (High-level design): 아키텍처 설계 (Architectural design): 소프트웨어의 주요 구성 요소나 모듈과 이들 간의 관계를 정의합니다. 시스템이 어떻게 분할될지, 모듈이 어떻게 상호 작용할지를 결정합니다. 전체 시스템의 구조와 흐름을 묘사하는 방법으로써 종종 다이어그램을 사용하여 표현됩니다. 저수준 디자인 (Low-level de..
"Viewport"는 컴퓨터 그래픽스와 웹 디자인에서 자주 사용되는 용어로, 보여지는 영역 또는 윈도우 내에서 사용자에게 보이는 부분을 나타냅니다. 1. 3D 그래픽스에서, viewport는 3D 세계의 특정 부분을 2D 화면에 어떻게 표시할지를 정의하는 직사각형 영역을 의미합니다. 3D 모델링 및 렌더링 프로그램에서 종종 볼 수 있습니다. 2. 웹 디자인에서, viewport는 웹 브라우저에서 실제로 보여지는 부분을 의미합니다. 특히 반응형 웹 디자인에서, 다양한 디바이스 및 화면 크기에 맞게 콘텐츠를 조절하기 위해 viewport 설정을 사용합니다. HTML에서 `` 태그는 웹페이지가 다양한 디바이스에서 올바르게 표시되도록 조정하는 데 사용됩니다. 간단히 말해, viewport는 "보이는 창" 또는 ..
GUI는 "Graphical User Interface"의 약자입니다. 그래픽 사용자 인터페이스라고 번역될 수 있으며, 사용자가 소프트웨어나 하드웨어와 상호작용할 수 있게 해주는 시각적 인터페이스를 의미합니다. 전통적인 CLI (Command Line Interface)나 텍스트 기반 인터페이스와 달리, GUI는 아이콘, 버튼, 창, 메뉴 등의 그래픽 요소를 통해 사용자와 상호작용합니다. 대부분의 현대 운영체제 (예: Windows, macOS, Linux의 일부 배포판)는 GUI를 기반으로 합니다. GUI의 장점은 직관적이고 사용하기 쉽다는 것입니다. 사용자가 특정 명령어를 외울 필요 없이 시각적인 요소를 통해 쉽게 명령을 내릴 수 있습니다.
`tar`는 "tape archive"의 약자로, 다수의 파일과 디렉터리를 하나의 아카이브 파일로 묶거나 해당 아카이브를 추출하는 데 사용되는 유닉스 및 리눅스 기반 시스템에서의 표준 도구입니다. `tar`는 다양한 옵션을 제공하여 아카이브 생성, 추출, 보기 등의 작업을 수행할 수 있습니다: 1. 아카이브 생성: tar -cvf output_name.tar directory_or_file_to_archive 2. 아카이브 압축 (gzip 사용) tar -czvf output_name.tar.gz directory_or_file_to_archive 3. 아카이브 추출: tar -xvf archive_name.tar 4. 압축된 아카이브 추출 (gzip 사용): tar -xzvf archive_name.t..