Back-end 185

[개발용어] test용어_ SIT란? UAT란? 차이점?

SIT 란? System Integration Testing. 시스템 통합 테스트 여러 하위 시스템으로 구성된 전체 시스템에 대한 전체 테스트. SIT의 주요 목적 모든 SW 모듈 종속성이 올바르게 동작하고 전체 시스템의 개발 모듈간에 데이터 무결성이 유지되도록 하는 것. SIT는 초기단계에서 결함을 감지하여 추후 수정에 드는 시간과 비용을 절약할 수 있다. 또한 모듈의 수용가능성에 대한 초기 피드백을 받는 데 도움이 된다. 여러 시스템간의 상호작용을 전체적으로 테스트하고 SIT의 결과물은 UAT ( User Acceptance Testing)으로 전달된다. SIT 세분화 SIT는 세가지 수준의 세분화로 수행한다. 1. 시스템 내 테스트 통합 시스템 구축을 위한 모듈을 통합하는 것. 2. 시스템 간 테스..

Back-end/DEV notes 2021.08.25

뷰 Vuejs란?

Vuejs란? 대화형 웹 프론트엔드를 쉽게 구축할 수 있게 하는 Javascript 프레임 워크. UI를 빠르게 개발하기 위해서 만들어진 자바스크립트 프레임워크. MVVC (Model-View-ViewModel) 패턴을 따르며, 어플리케이션 로직과 UI 의 분리를 위해 설계되었다. Angular.js나 React.js보다 많이 알려지지 않았지만 급속도로 확산하고 있다. 뷰 View : 사용자에게 보이는 화면 돔 Dom: HTML 요소(태그, 클래스, 속성 ..) 의 정보를 담고 있는 데이터 트리 돔 리스너 Dom Listener: 돔의 변경 내역에 대해 즉각적으로 반응하여 특정 로직을 수행하는 장치 모델 Model: 데이터를 담는 용기. 보통은 서버에서 가져온 데이터를 자바스크립트 객체형태로 저장. 데이..

Back-end/FrontEnd 2021.07.27

[javaScript] input text 태그 엔터 시 새로고침 현상 막기

현상 input text 박스에서 enter 키에 별도의 onkeypress 기능을 넣지 않아도 새로고침 현상이 나타남. 또는 onkeypress 기능 실행 이후, 새로고침 현상이 나타남. 원인 form 태그 내부에 있는 input(type=text) 태그가 단 하나 존재하는 경우, 엔터 > submit 시킨다. 해결방법 1. form 태그의 onsubmit 속성값 이용 2. input 박스 추가 input text box가 단 하나 존재하는 경우에 submit 시키는 것이므로, 의미없는 input(type=text) 태그를 추가하여 이를 방지할 수 있다.

Back-end/JavaScript 2021.06.14

[java] Lombok 사용 및 설치방법 (intelli J 기준)

Lombok 적용 및 설치하기. 롬복은 @Getter, @Setter등의 어노테이션을 사용하는데, 이러한 API를 사용하기 위해서 롬복 라이브러리 (.jar) 파일을 추가 해 주어야 한다. .jar파일을 직접 내려밭아 class path상에 추가해주어도 되지만 메이븐 프로젝트의 경우 pom.xml 에 아래와 같이 의존성을 추가한 후, 메이븐 업데이트를 해주면 된다. pom.xml ) org.projectlombok lombok 1.18.20 compile *직접 lombok.jar를 내려받아 프로젝트에 추가하려면 https://projectlombok.org/download에서 다운로드 할 수 있다. 프로젝트에 롬복 라이브러리 의존성을 추가했다면 이제 @Getter나 @Setter등의 API를 사용할수 ..

[java] Lombok 롬복이란? - 코드 다이어트

Lombok 롬복 이란? Lombok 이란 Java 라이브러리로 반복되는 getter, setter, toString .. 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 이다. 근데 왜 Chilli 모양일까... Java에서 보통 model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버변수가 있고 이에 대응되는 getter, setter 와 toString() 메서드, 때에따라 멤버변수에 따른 여러개의 생성자를 만들어주게 되는데 거의 대부분 이클립스나 인텔리제이같은 IDE에서 자동생성 기능이 있지만 이 역시도 번거로운 작업이 아닐 수 없다. 뿐만 아니라 코드 자체가 반복 소스코드로 인해 복잡해지게 된다. Lombok은 여러가지 @어노테이션을 제공하고 이를 기반으로 반복 소..

[java] Try-with-resource 문이란? 자동 자원반납.

자바를 이용해 외부 자원에 접근하는 경우 주의점은 외부자원을 사용한 뒤 반드시 반납을 해주어야 한다는 점이다. 파일로 예를들면 파일 출력을 위해서 하드디스크에 저장되어 있는 파일의 내용을 메모리로 가져와야 하는데 파일의 내용을 모두 메모리에 올리는것이 부담인 경우가 많음. 때문에 많은 프로그래밍 언어들이 파일에 대해서 입출력 스트림을 연결한다. 즉, File 인스턴스를 생성하는 순간 파일의 모든 내용이 메모리에 올라오는 것이 아니라 스트림을 연결하여 언제든지 원하는 부분의 원하는 만큼 내용을 읽어 들일수 있도록 하는 것이다. 이 때 연결한 Stream을 자원이라 하고 이것은 시스템에서 제공 해주는 것.(운영체제가 제공) 자원반납과 finally 1. 자원반납 문제 param = new Object(); ..

[Spring] @RequestBody / @ResponseBody 어노테이션 이란?

스프링에서 비동기 처리를 하는 경우 @RequestBody , @ResponseBody를 사용한다. 비동기 처리를 위해 이 어노테이션들은 어떻게 작동할까? 클라이언트와 서버의 비동기 통신 클라이언트에서 서버로 통신하는 메시지를 요청(request) 메시지라고 하며, 서버에서 클라이언트로 통신하는 메시지를 응답(response) 메시지라고 한다. 웹에서 화면전환(새로고침) 없이 이루어지는 동작들은 대부분 비동기 통신으로 이루어진다. 비동기통신을 하기위해서는 클라이언트에서 서버로 요청 메세지를 보낼 때, 본문에 데이터를 담아서 보내야 하고, 서버에서 클라이언트로 응답을 보낼때에도 본문에 데이터를 담아서 보내야 한다. 이 본문이 바로 body 이다. 즉, 요청본문 requestBody, 응답본문 respons..

IPv4 IPv6 란? IPv4 IPv6 차이점?

IPv4 IPv6 란? IPv4 IPv6 차이점? IPv4 현재 네트워크 계층의 프로토콜은 IPv4 Internet Protocal version4 를 사용한다. (현재 대부분 사용되고 있는 아이피) 현재 아이피주소는 버전 4로 4영역으로 나누어진 최대 12자리의 번호로 이루어져 있다. ex) 127.0.0.1 192.12.100.2 . . 숫자로 구성된 인터넷 공인 주소이고 점으로 구분한다. 각 영역의 숫자는 0 ~ 255 까지의 숫자로 표현할 수 있고, 한 영역의 256 (2^8) 가지의 경우의 수를 표현할 수 있다. 비트로 표현하면 각 영역은 8비트로 이루어지며 총 4영역이므로 8 *4 = 32 비트 체계이다. 32비트로 이루어진 IPv4 는 최대 약 40억개(2^32 = 4,294,967,296 ..

Back-end/Network 2021.05.06

[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기.

쉘 스크립트 (Shell Script) shell을 사용해서 프로그래밍을 할 수 있다. 주로 리눅스 등 서버작업의 프로그래밍 시 사용되며 생각보다 자주 사용된다. 쉘 스크립트는 파일안에 스크립트 작성 후, 실행 시 해당 스크립트가 실행되는 방식으로 이루어진다. 파일의 가장 위 첫라인은 #!/bin/bash 로 시작된다. * 이때 #는 주석을 의미하는 것이 아니다. 쉘스크립트 파일은 실행권한을 가지고 있어야 실행시킬 수 있다. 간단한 쉘 스크립트를 만들어서 실행 해보자. $ vi forever.sh vi [쉘 파일명]을 입력하여 쉘 파일 생성/편집 모드로 들어간다. 필자는 파일명은 forever.sh 로 만들어 보겠다. * shell script의 파일 형식은 관습적으로 "sh" 확장자를 사용한다. 이는 ..

Back-end/Linux 2021.04.28

로드 밸런싱이란? Load balancing

로드 밸런싱 Load balancing 로드밸런싱(부하 분산) 은 컴퓨터 네트워크 기술의 일종으로 중앙처리장치 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 분산하는 것을 의미한다. 서버에 가해지는 부하(로드) 를 분산(밸런싱) 해주는 기술이다. 사업의 규모가 확장되고 클라이언트의 수가 증가하게 되면 기존 서버로 정상적인 서비스가 불가하게 되는 경우가 발생하는데, 이러한 증가 트래픽에 대처할 수 있는 방법은 1. Scale up: 서버자체의 성능을 높이는 것. 2. Scale out: 여러대의 서버를 두는 것. *참고 포스팅 https://cheershennah.tistory.com/270 Scale Up 스케일 업/ Scale Down 스케일 다운이란? - 서버확장 서버를 운영하다 보면 갑작스런 트래픽..

Back-end/Network 2021.04.26