본문 바로가기

전체 글68

[Docker] Container vs Virtual Machine 도커를 사용하면 컨테이너를 통해 개발환경이 맞지 않는 문제를 해결해 준다고 했다.그런데 여기서 알아둬야 할 것은, 도커는 리눅스 환경 기반이라는 것이다.즉, 윈도우에서 맥 전용 프로그램을 사용하기 위해서라던가, 맥에서 윈도우 전용 프로그램을 사용하기 위해서 사용하는 건 안된다.그러면 여기서 드는 의문.. 가상환경(VM)을 사용하는 것과 무슨 차이가 있는가?다음 글(https://www.docker.com/resources/what-container/)을 보고 공부했다.  컨테이너와 가상 머신은 둘 다 애플리케이션을 격리시켜주는 배포 기술이다.이 두 기술은 유사하지만, 그 역할과 사용 범위는 애플리케이션이 배포되는 위치와 방법에 따라 달라진다.  Virtual Machine물리적 하드웨어를 가상화하여 여러.. 2024. 8. 17.
[딥러닝] 역전파(Back propagation) 알고리즘 역전파(Backpropagation) 알고리즘 :  딥러닝에서 인공 신경망(특히 다층 퍼셉트론)을 학습시킬 때 사용되는 핵심 알고리즘네트워크의 출력 결과와 실제 값 사이의 오차(손실)를 계산하고, 이 오차를 네트워크의 가중치에 반영하여 모델을 업데이트하는 과정  역전파의 두 가지 주요 단계1. 순전파(Forward Propagation)2. 역전파(Backward Propagation)  순전파 입력 데이터를 신경망에 전달하여 예측값을 계산하는 과정입력이 각 층을 통과하며 가중치와 편향이 적용된 선형 결합(z = Wx + b)을 거치고, 이후 활성화 함수(f(z))가 적용됨이 과정이 반복되어 최종 출력값이 계산 역전파 순전파 결과로 얻은 예측값과 실제 값의 차이(손실)를 바탕으로 각 가중치가 손실에 미치.. 2024. 8. 16.
Modern Symbolic Execution white-box testing에서는 symbolic execution 기법을 사용한다.symbolic execution, 기호실행은 symbolic 변수를 사용하여 프로그램 input을 symbolic 변수로 교체하는 테스팅 기술이다.여기서 symbolic 변수로 교체하는 것에 그치지 않고 프로그램 실행까지 진행하는 것을 Dynamic symbolic execution이라고 하는데, 여기에 대해 좀 더 자세히 알아보자  Dynamic Symbolic Execution의 두 가지 방법1. Concolic Testing (CREST)2. Execution-Generated Testing (KLEE)  Concolic Testing: Concrete + Symbolic 프로그램을 실제 값(Concrete E.. 2024. 8. 15.
Black-box, White-box, and Gray-box testing 테스팅 방법은 크게 black-box teseting, while-box testing으로 나뉜다.프로그램 안의 소스코드를 보느냐(white), 안 보느냐(black, 어두워서 안 보이는 건가..)의 차이다.그리고 그 사이에는 gray-box testing이라는 것도 있다.이것들이 뭔지, 비교하며 알아보자!  Black-box, While-box Testingblack-box testingfuzzing : 소프트웨어에 입력값을 무작위로 대입해 보고, 그 과정에서 발생하는 에러나 충돌을 모니터링해서 보안의 허점을 찾아내는 방식.소스코드 없이 테스트를 진행.비용은 싸지만, naive 하다.*naive 하다 : 직관적, 표면적이란 의미로 사용. 내부의 구체적인 로직을 고려하지 않고, 주어진 기능에 대해 단순히.. 2024. 8. 14.
급류 보호되어 있는 글 입니다. 2024. 8. 14.
소프트웨어 테스팅(Software Testing)과 Code Coverage 소프트웨어 제품이나 어플이 잘 작동하는지 검증하기 위해, 소프트웨어 테스트는 필수적이다.소프트웨어 테스트는 어떻게 할까?소프트웨어 테스팅에 대해 알아보자!! Software Testing- what오류를 찾기 위해 입력(테스트케이스)을 자동생성하는 기술 - why우리의 돈과 시간을 잃지 않기 위해 필요소프트웨어 버그를 빠르게 찾기 위함 - howcode coverage를 최대화code coverage : 코드 구문 중 몇 줄이 실행되었는가완벽한 방법은 아니지만, 프로그램에서 더 많은 코드를 실행할수록, 발견하는 프로그램 버그 수도 늘 것이라 생각  coverage metrix(커버리지 지표) : line, branch, path, ,,,line coverage : 실행된 라인의 #branch covera.. 2024. 8. 13.