[정보처리기사] 소프트웨어 테스트 기본원칙
소프트웨어 테스트 기본원칙 테스팅은 결함이 존재함을 밝히는 활동 완벽한 테스팅은 불가능 테스팅은 개발 초기에 시작 결함 집중 살충제 패러독스(Pesticide Paradox) 테스팅은 정황(Context)에 의존 오류 부재의 궤변
소프트웨어 테스트 기본원칙 테스팅은 결함이 존재함을 밝히는 활동 완벽한 테스팅은 불가능 테스팅은 개발 초기에 시작 결함 집중 살충제 패러독스(Pesticide Paradox) 테스팅은 정황(Context)에 의존 오류 부재의 궤변
아키텍처 스타일 클라이언트 서버 구조 계층 구조 MVC 구조 파이프 필터 구조: 서브 시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복
데이터베이스 정규화(Database Normalization) 1NF: 어떤 릴레이션 R에 속한 모든 도메인이 원자값(Atomic Value)만으로 되어 있다. 2NF 3NF 3NF -> BCNF: 결정자이면서 후보 키가 아닌 것 제거 BCNF 4NF ...
MQTT 사물통신, 사물인터넷과 같이 대역폭이 제한된 통신환경에 최적화하여 개발된 푸시기술 기반의 경량메시지 전송 프로토콜 메시지 매개자(Broker)를 통해 송신자가 특정 메시지를 발행하고 수신자가 메시지를 구독하는 방식 IBM이 주도하여 개발
하향식 설계 제일 상위에 있는 main user function에서 시작하여 기능을 하위 기능들로 분할해 가면서 설계
팬 인(Fan-in) 모듈에 필요한 상위 모듈의 개수
유스케이스 액터: 대상 시스템과 상호 작용하는 사람이나 다른 시스템에 의한 역할이다. 확장: 특별한 조건을 만족할 때 수행하는 유스케이스
UML(Unified Modeling Language) 기능적 모델은 사용자 측면에서 본 시스템 기능이며, UML에서는 Usecase Diagram을 사용한다. 정적 모델은 객체, 속성, 연관관계, 오퍼레이션의 시스템의 구조를 나타내며, UML에서는 Class Diagra...
현행 시스템 분석 DBMS 분석 네트워크 분석 운영체제 분석
객체지향 분석 방법론 Coad-Yourdon: E-R 다이어그램을 사용하여 객체의 행위를 데이터 모델링하는데 초점을 둔 방법
소켓(Socket) 소켓 기술: 통신을 위한 프로그램을 생성하여 포트를 할당하고, 클라이언트의 통신 요청 시 클라이언트와 연결하는 내·외부 송·수신 연계기술
객체지향 프로그래밍(OOP, Object Oriented Programming) 캡슐화(Encapsulation): 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정 인스턴스(Instance): 같은 클래스에 속한 각각의 객...
리눅스 명령어 ls: 파일의 목록을 표시 cat: 파일들을 연결하고 표시 pwd: 현재 작업중인 디렉토리의 이름을 출력 uname: 운영체제 분석을 위해 리눅스에서 버전을 확인
객체지향 설계 원칙(SOLID) 단일 책임 원칙(SRP, Single Responsibility Principle) 개방 폐쇄의 원칙(OCP, Open-Closed Principle) 리스코프 교체의 원칙(LSP, Liskov Substitution Principle) 서브타...
자료 사전 자료 흐름도에 기술된 자료들에 대해 정의하는 것. 자료사전에서 사용하는 기호들은 정의(=), 연결(+), 반복({}), 선택([]), 생략(()), 주석(**)이 있다.
정형기술검토(FTR, Formal Technical Review) 동료 검토(Peer Review) 인스펙션(Inspection) 워크 스루(Walk Through) : 검토회의 전에 요구사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토 회의를 통해 오류를 조기에...
미들웨어 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어 분산 컴퓨팅 환경에서 서로 다른 기종 간의 하드웨어나 프로토콜, 통신환경 등을 연결하여 응용프로그램과 운영환경 간에 원만한 통신이 이루어질 수 있게 서비스를 제공하는 소프트웨어
랜드 공격(LAND Attack, Local Address Denial Attack) 네트워크 패킷의 출발지 IP를 변조하여 공격 대상의 자원을 소모시키는 공격 3-Way-HandShaking의 연결지향적 특징을 가지는 서비스에서 발생 출발지 IP 주소와 도착지 IP ...
럼바우(Rumbaugh)의 객체 지향 분석 절차 객체(object) 모형 동적(dynamic) 모형: 상태 다이어그램 활용 기능(functional) 모형: 자료 흐름도를 사용하여 프로세서들의 처리 과정을 기술
OSI(Open Systems Interconnection Reference Model)는 컴퓨터 네트워크 프로토콜 디자인과 통신을 7계층으로 나눈다. OSI-7 계층 물리 계층(Pysical Layer) 전송에 필요한...
중간 광고
데이터베이스 설계 순서 요구 분석 개념적 설계 논리적 설계 물리적 설계 구현 개념적 설계 개념 스키마 설계 논리적 설계 논리적 데이터베이스...
능력 성숙도 모델(CMM, Capability Maturity Model) 소프트웨어 개발 업체들의 업무능력평가 기준을 세우기 위한 평가 모형
DFD란? 구조적 분석 기법에 이용된다 자료 흐름과 기능을 자세히 표현하기 위해 단계적으로 세분화된다 자료 흐름 그래프 또는 버블(Bubble)차트라고도 한다
CASE(Computer-Aided Software Engineering) 소프트웨어 개발 과정에서 사용되는 요구분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용의 소프트웨어 도구를 사용하여 자동화 표준화된 개발 환경 구축 및 문서 자동화 기능을 ...
현상 매번 vscode를 켤 때마다 C# dependencies를 설치하여 버벅거리는 현상이 나타난다.
AttributeError: module 'tensorflow' has no attribute 'set_random_seed' 에러는 tensorflow 2에서 set_random_seed()을 실행 시 나타난다.
AttributeError: module 'tensorflow' has no attribute 'random_uniform' 에러는 tensorflow 2에서 random_uniform()을 실행 시 나타난다.
현상 package가 broken되어 안내대로 sudo apt --fix-broken install을 하였음에도 에러가 발생할 수 있다. overwrite를 하려고 했으나 실패한 것으로 보인다.
해결법 dpkg-dev을 설치해준다.
Window에서 Visual Studio를 이용하여 디버깅을 하다가 어느 순간 LNK1168이 발생하며 실행이 실패하게 된다. 이는 프로세스가 종료되지 않은 채로 남아있어 발생하는 것이다.
PIL.image를 사용하다가 show()를 했는데 SystemError: tile cannot extend outside image가 뜨는 경우가 있다. 원인은 다양하겠지만 crop()함수를 잘못 쓰는 경우 발생할 수 있다.
PIL.Image를 사용하려면 pillow가 설치되어야 한다.
C++의 <filesystem>은 C++17에 도입되었다. 따라서 C++17을 지원하지 않는 컴파일러의 경우 사용할 수 없다. 혹은 C++17을 사용하도록 하는 컴파일러 옵션이 빠졌을 수도 있다.
해결법 gtk-doc-tools을 설치해준다.
gh-pages -d build를 했을 때 아래와 같은 에러와 함께 실패하는 경우가 있다.
gradle이 설치되어있지 않으면 gradle: command not found와 같은 에러 메시지가 생성된다.
해결법 import cv2에서 실패하고 ModuleNotFoundError: No module named 'cv2'라는 에러가 발생한다면, opencv 모듈이 없는 것이다. opencv-python를 설치하여 해결한다.
필독 만약 Ubuntu GUI가 안나와서 startx를 했는데 안되길래 로그를 열어봤더니 제목과 같은 로그가 나와서 검색해본 것이라면 아래 링크를 참고한다. [Ubuntu GUI 안나옴]/troubleshooting/ubuntu-gui/
해결법 xz-utils를 설치해준다.
Ubuntu를 켰는데 원래 보던 GUI 화면이 안나오고 CUI 콘솔 화면만 나타날 때가 있다.
tensorflow 2에서 tf.lite.constants.QUANTIZED_UINT8와 같은 deprecated된 값을 사용시 발생한다.
AttributeError: module 'tensorflow' has no attribute 'random_normal' 에러는 tensorflow 2에서 random_normal()을 실행 시 나타난다.
error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory이라는 에러가 발생하는 경우가 있다.
Keras Documentation을 보면 ResNet50와 같은 모델을 사용한 예시 코드가 있다.
아래와 같이 keras application을 import했을 경우 AttributeError: 'NoneType' object has no attribute 'image_data_format'와 같은 에러가 발생할 수 있다.
tensorflow-lite를 빌드하기 위해 ./tensorflow/lite/tools/make/build_lib.sh를 실행하다 제목과 같은 오류가 발생할 수 있다.
NVIDA driver를 설치하다가 위와 같은 에러 로그와 함께 설치에 실패할 수도 있다. 이는 Nouveau kernel driver가 사용 중이라 설치를 할 수 없다는 메시지다.
AttributeError: module 'tensorflow' has no attribute 'enable_eager_execution' 에러는 tensorflow 2.0이상에서 enable_eager_execution()을 실행 시 나타난다.
EADDRINUSE 127.0.0.1:4000을 사용하고 있는 상태에서 다시 사용하려고 해서 발생한다. 일반적으로 이전에 사용하고 있던 것이 정상적으로 종료되지 않아서 발생한다. netstat -lntp를 쳐서 해당 어드레스를 사용하고 있는 PID를 찾는다. kil...
해시 함수(Hash Function) 임의의 길이를 입력하여 정해진 고정 크기의 해시 코드를 생성한다. 일방향성(One-way Function)의 특성을 가진다. 약한 충돌 회피성과 강한 충돌 회피성을 가진다. 계산이 용이해야 한다.
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부한 책 이기적 정보보안기사 필기+실기 환상의 콤비
공부 시작 정보관리기술사를 따보려다가 보안파트가 부족한거 같아서 일단 정보보안기사를 공부해보려고 한다.
script 로드
기본 이미지 설정
Jekyll에 수학식을 표기하는 방법 중 MathJax를 연동하는 방법이 있다. MathJax 홈페이지를 보면 웹에서 사용 시 아래 코드를 추가하라고 한다.
include include 태그를 사용하면 _includes 폴더에 저장된 내용을 가져올 수 있다. {% include footer.html %}
Github Pages에서 Jekyll을 사용하는 경우, 기본적으로 Github Pages에서 지정한 테마와 Jekyll 플러그인을 사용할 수 있다. Github Pages에서 제공하는 테마는 Github Pages Themes에서 확인할 수 있다. Github Pages가 사용하...
minima minima는 어디에서나 적용할 수 있는(one-size-fit-all) Jekyll 테마이다. 또한 기본적으로 적용되는 테마이기도 하다.
jekyll-last-modified-at? jekyll-last-modified-at 플러그인은 마지막에 수정된 날짜를 표시해준다. git을 사용하고 있는 경우 git commit 날짜를 이용하고, 그렇지 않은 경우 mtime을 사용한다. Github Repo: jekyll...
Sitemap이란? sitemap은 사이트에 대한 정보를 제공하는 파일이다. 검색엔진은 sitemap을 읽어 사이트를 크롤링한다. 더 자세한 설명은: 사이트맵이란 무엇인가요?
post_url post_url 태그를 사용하면 post의 고유주소를 얻을 수 있다. post의 고유주소는 {% post_url 2010-07-21-name-of-post %}이다. subdir/_posts와 같이 하위 디렉토리를 사용한다면 {% post_url /s...
html language attribute 웹페이지 내 텍스트의 기본 언어값에 대한 속성이다. 한국어는 “ko”이다. 참고자료 : 웹 접근성 html lang 속성
Disqus? 아래와 같이 댓글을 달 수 있게 해주는 서비스이다.
요약 _posts 디렉토리에 YEAR-MONTH-DAY-title.MARKUP 파일형식으로 Front matter를 포함한 post를 저장하면 된다.
Jekyll site 설정은 _config.yml을 통해 변경할 수 있다. _config.yml의 title 값을 Your awesome title에서 원하는 title로 변경하자. # _config.yml title: Your awesome title
Google Analytics 적용하기 Google Analytics를 이용하여 블로그를 방문하는 사람들을 분석할 수 있다. Jekyll을 사용하고 있다면 간단히 적용 가능하다.
Jekyll 설치하기가 끝나면, 로컬이 아니라 웹사이트를 통해서 확인하고 싶어질 것이다. GitHub Pages를 사용하여 블로그를 호스팅할 수 있다.
Jekyll 설치 Windows에서 Jekyll 설치 Ruby Installer에서 Ruby+Devkit을 다운받아 실행한다. ridk install을 할지 물으면 실행한다. powershell을 켜서 gem install jekyll bundler을 실행한다. j...
P2P 개인신용 투자 시작 8퍼센트라는 P2P 업체를 통해 P2P 투자를 해보았다. 이전에도 다른 P2P 업체를 통해 투자를 해보았는데, 그 업체는 파이낸싱 프로젝트 위주여서 큰 이득을 못 보았다. 이번에는 개인신용을 위주로, 다른 자산군에 투자하는 것과 비교하기 위해 소액을 투자...
P2P 투자란?
26분 만에 주식투자의 중수가 되는 법 - 천영록 대표
M2 Money Stock
ROE(Return On Equity, 자기자본이익율)의 정의
투지 수익률을 측정하는 것은 다양한 방법이 있다. 그리고 어떤 방법을 선택했느냐에 따라 수익률도 달라질 수 있다. 투자 퍼포먼스를 측정하는 주요한 방법에는 TWRR(Time-Weighted Rate of Return)와 MWRR(Money-Weighted Rate of Return...
추세선(Trendlines)
배당수익률이 비정상적으로 높으면 아래 항목들에 의한 이유인 경우가 많다. 배당수익률의 배당금은 과거의 데이터 분배금 배당 중지 100%에 가까운 배당성향
Underwater Period란? under(아래) + water(물)이므로 수중이라는 뜻이다. 일반적으로 자산을 구매하였을 때의 비용보다 자산의 가치가 낮아진 상태를 의미한다.
MDD란?
CAGR이란?
토스에서 부동산 소액투자라는 항목을 보고 높은 수익률에 덥썩 돈을 넣는 경우가 있다. 높은 수익률을 제공한다는 것은 리스크도 크다는 뜻인데 실제로 원금손실이 발생하면 어떻게 되는지 적어보았다.
예전에 한번 P2P 분산투자를 넣어뒀었는데, 어느날 최종상환이 되었다. 실제로 투자하면 어떻게 되는지 궁금하신 분들에게 도움이 되기위해 정리를 해보았다.
이 포스트는 브라질 채권을 구매한 후, -13%를 맞고 쓰는 반성문이다.
Emphasizing continuity with line plots scatter plot은 매우 효과적이지만, 언제나 사용할 수 있는 최적의 시각화 유형 같은 것은 없다. 시각적 표현은 데이터셋의 특성과 그림으로 답할 수 있는 질문에 맞게 조정해야 한다. 어떤 데이터셋을 가지...
요약 relplot으로 scatter plot과 line plot을 그릴 수 있다.(dafault값은 scatter) scatter plot은 2차원에서 그려지나, hue, style, size로 더 큰 차원을 표시할 수 있다. palette로 색상을 ...
XGBoost? Graident Boosting 라이브러리 결측값을 자동으로 처리해줌(항상 좋다는 건 아님)
pandas.factorize object를 enumerated type이나 categorical variable로 변환한다. 참고 : pandas.factorize
차원의 저주란 저차원 데이터 이용할 때는 발생하지 않다가 고차원 데이터를 이용할 때 발생하는 현상이다. 머신러닝에서는 고차원 데이터를 이용한 모델이 저차원 데이터를 이용한 모델보다 성능이 낮아지는 현상을 의미한다. 데이터의 차원이 증가할 수록 해당 공간의 크기가 증가하...
결측값(Missing Value)이란? 결측값은 측정한 값이 없다는 것이다. 결측값을 삭제하거나, 대체함으로써 처리한다.
training data의 Sex와 Survived의 연관성
Data set 다운받기
초간단하게 Kaggle의 Titanic 생존자 예측하기 문제 제출하기
목표 pipeline의 stream position이나 duration과 같은 정보를 얻는 법 stream의 다른 position으로 seek하는 법
목표 pipeline을 즉석에서 만드는 법 element들을 연결할 때 미세 조정하는 법 관심있는 event를 notify 받아 대응하는 법 element가 가질 수 있는 상태
목표 아래 항목들을 배운다. Gstreamer element와 만드는 방법 각 element를 연결하는 방법 element의 동작을 커스터마이징하는 방법 bus의 에러 상태를 보고 Gstreamer 메시지를 추출하는 방법
목표 video를 재생시켜본다.
Ubuntu에서 apt-get을 이용하여 Gstreamer를 설치할 수 있다. 터미널을 열어 다음과 같이 실행하자.
Build options
meson에서 gtk 디펜던시를 추가하여 빈 화면을 보여주는 예제를 실행해본다.
meson을 이용하여 “Hello there.”을 출력하는 예제를 실행해본다.
env env는 워크플로우(workflow), 작업(job), 단계(step)에 대한 환경 변수를 정의하기 위해 사용되는 맵(map)입니다. $의 형태로 사용하거나 $<env_name>의 형태로 사용할 수 있습니다.
ref, ref_name, base_ref, head_ref ref, ref_name, base_ref, head_ref는 GitHub Actions에서 사용되는 변수들로, 워크플로우가 특정 이벤트에 의해 실행될 때 참조하는 브랜치나 태그와 관련된 정보를 제공합니다. base_re...
YAML YAML Ain't Markup Language YAML과 같이 풀어쓴 문장안에 약자가 그대로 있는 것을 재귀약자라고 한다. YAML은 사람이 읽기 쉬운 데이터 직렬화 양식으로 많은 프로그래밍 언어에서 사용할 수 있다.
environment.yml 파일로 환경 생성하기 conda env create -f environment.yml
conda list를 통해 conda environment에서 link된 package를 확인할 수 있다.
React app 만들기 React 설치방법 참고
Node nodejs를 설치한다. Node.js 홈페이지
C++에서는 상속이 있으나, C에는 상속이 없다. 하지만 struct 구조체가 메모리에 저장되는 순서를 이용하면 상속과 비슷한 기능을 하는 코드를 사용할 수 있다.
C는 절차지향 언어로 객체지향 언어에서 제공되는 class keyword가 존재하지 않는다. 하지만 class를 사용하지 않고도 class와 같은 기능을 하는 코드를 구현할 수 있다.
요약 finally는 deprecate될 예정입니다. 향후 릴리스에서는 기본적으로 비활성화되며, 이후 릴리스에서는 제거될 예정입니다. finally를 사용하는 라이브러리 및 애플리케이션의 유지 관리자는 try-with-resources 및 cleaners와 같은 다른 리소스 관리 ...
요약 Java 8 이후에는 java.time 패키지의 날짜 및 시간 API를 사용할 것을 권장하며, 이 경우 @Temporal 어노테이션을 사용할 필요가 없습니다. 대신, @Column 어노테이션과 함께 LocalDate, LocalTime, LocalDateTime, Instan...
변수 추출(Extract Variable) Extract Variable은 식(expression)을 추출하여 변수에 저장합니다. 중복된 식이 여러 곳에 있거나 특정 식이 이해하기 어려워 추가적인 의미를 설명할 때 사용할 수 있습니다.
이름 변경(Rename) Rename은 변수와 같은 심볼의 이름이나 파일 및 디렉토리의 이름을 변경해 줍니다. 그냥 이름을 변경하면 되는데 왜 이런 기능이 있을까요? 로컬 변수나 private 메서드의 이름 변경은 해당 파일 하나만 변경하면 됩니다. 그런데 여러 파일에 거쳐 사...
라즈베리파이에 OS를 설치하는 방법은 여러가지가 있다. rpi-imager를 통해 OS를 설치해보자
국민연금 수익이 상당히 괜찮다는 얘기도 있고, 다른 전략과의 비교를 위해서도 좋은 데이터일 것 같다. 국민연금 국내주식 운용현황은 매년 3분기에 공시한다고 한다. 아래는 2020년 말의 운용현황이라고 한다. 종목이 1065개나 되는데 이걸 어떻게 예쁘게 보여줄지는 고민을 좀 해봐야...