일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주정부이민
- cpp
- 방송통신대학교
- 선형대수
- 방통대
- EOI
- LAA
- 개발자
- zeros
- machine learning
- 머신러닝
- 마니토바
- 매트랩
- leetcode
- 프로그래머스
- 컴퓨터과학과
- LV1
- 딥러닝
- 기본
- 알고리즘
- MATLAB
- 코딩테스트
- Deep learning
- mpnp
- C++
- 온라인석사
- 캐나다 영주권
- 조지아텍
- Plotting
- omscs
- Today
- Total
목록개발 로그/기록장 (8)
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는 "보이는 창" 또는 ..
0. Travel - reprioritize life (in parallel) 1-1. perm visa (SW) + gatech ** 1-2. perm visa (non SW) + gatech *** 1-3. perm visa (Coursework + coop) + gatech * 2-1. Job offer (ML based) 2-2. gatech transfer + coop (ML based)
일단 큰 흐름에서 잘 나아가고 있는 듯 하다. 원하는 플랜으로 회사에서 일을 하면서 대학원 과정을 수강하고 있다. 회사도 어느 정도 적응을 하면서, 뭔가 바쁘면서도 무료함을 느끼는 평범한 일상의 궤도에 오른듯 하다. 다만, 목표를 되돌아봐야하는 시간을 가져야 되겠다고 생각했다. 내가 원하는 것은 좋은 가정을 이루는 것이었고, 좋은 가정을 이루려면 나 자신이 일상생활에서 행복해야하고, 일상생활에서 행복하려면 내가 좋아하는 일을 해야 하며, 그 일에 대한 어떤 형태로의 적절한 물질적, 감정적인 보상이 있고, 무엇보다 가치를 창출한다는 느낌이 있어야 했다. 그래서 결론적으로 나는 개발을 업으로 삼고 있다. 나는 개발이 마음에 들고, 만족한다. 다만 개발 커리어와 관련해서 삶에 큰 변화를 불러올 수 있는 구체적..