소프트웨어 개념 5

22.09.09 [시큐어코딩] sonarqube

소스코드에 sql injection 코드를 방지하거나 데이터 암호화 등의 보안성을 검토할 필요가 있다. 다양한 프로그래밍 언어를 지원하는 소나큐브를 프로젝트에 적용해봤다. 소나큐브를 맥 PC 에 설치하고 프로젝트를 분석할 스캐너에 대한 토큰을 발급받는 과정까지 진행하였다. 먼저 터미널을 열고 homebrew 가 없다면 설치부터 해준다. homebrew 로 sonarqube 를 설치한다. brew install sonarqube 소나큐브 프로그램을 로컬로 띄운다. brew services start sonarqube 설치 완료되면 http://localhost:9000 에 들어가서 분석할 프로젝트를 생성한다. 프로젝트는 깃 레포지토리 단위로 구분된다!! 그리고 해당 프로젝트의 CI (배포 자동화)에 소나큐..

22.08.11 소프트웨어 버전 관리 규칙

버전 번호는 다음과 같이 정한다. (깃 창업자가 제시) 1.0.8 Major, Minor, Patch 규칙 1. 각 번호의 수는 항상 증가해야 한다. 각각 자연수이고 Major 는 0이 되어서는 안된다. 2. 특정 버전으로 패키지를 배포하면 그 버전의 내용은 절대 변경되어서는 안된다. 3. 변경할 내용이 있다면 반드시 새로운 버전으로 배포해야 한다. 4. Major 버전이 변경될 때, Minor, Patch 는 0으로 초기화되고, 5. Minor 버전이 변경될 때, Patch 는 0으로 초기화된다. Major 버전 증가 다 바뀜, 거의 리뉴얼 수준 하위 버전과 호환되지 않는 변화가 생겼을 때 Minor 버전 증가 기능 추가 하위 버전과 호환이 되면서, 새로운 기능이 추가될 때 기존의 기능이 변경되거나 사..

22.07.05 DAO, DTO, VO

DAO: Data Access Object 데이터베이스의 data 에 접근하기 위한 객체 database 에 접그하기 위한 로직, 비즈니스 로직을 분리하기 위해 사용 DTO: Data Transfer Object 계층 간 데이터 교환을 하기 위해 사용하는 객체 DTO sms fhwlrdmf rkwlwl dksgsms tnstngks epdlxj rorcp getter & setter VO: Value Object 사용 도중에 변경 불가능 오직 읽기만 가능하다. DTO 와 유사하지만 DTO 는 setter 를 가지고 있어서 값이 변할 수 있다.

22.07.05 mvc 패턴

Model-View-Controller 어플리케이션을 세가지 역할로 구분한 개발 방법론 사용자가 Controller 를 조작하면 Controller 는 Model 을 통해 데이터를 가져오고 그 데이터를 바탕으로 View 를 통해 시각적 표현을 제어하여 사용자에게 전달하게 된다. 사용자 인터페이스로부터 비즈니스 로직을 분리하여 어플리케이션의 시작적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 어플리케이션을 만들 수 있다.

21.05.17 메모리 영역

✔메모리가 필요한 이유 프로그램이 실행되기 위해서는! 프로그램과 그 프로그램에 사용되는 변수를 저장하기 위한 메모리가 필요하다. ✔메모리 공간의 종류 1. Code 코드 영역 실행할 프로그램의 코드가 저장되는 영역 CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리한다. 2. Data 데이터 영역 프로그램의 전역변수와 정적변수가 저장되는 영역 프로그램의 시작과 함께 할당되며 프로그램이 종료되면 소멸한다. 3. Stack 스택 영역 함수 호출과 관련된 지역 변수와 매개변수가 저장되는 영역 함수의 호출과 함께 할당되고 함수 호출이 완료되면 소멸한다. (push 데이터 저장, pop 데이터 인출) 4. Heap 힙 영역 사용자가 직접 관리하는 메모리 영역 사용자에 의해 메모리 공간이 동적으로 할당되고 ..