전체 글 77

[BackEnd_Servers] JAVA8(Optional Class) 정의 및 활용

1. Null Pointer Exception, Optional Class * Null Pointer Exception --> 프로그램 개발 시 많이 접하는, 예외 중 하나가 NPE(NullPointerException)이다. 이를 해결하기 위해서 Null을 검사하는 로직을 추가해야 하는데, 프로그램이 커질수록 코드가 복잡해지고 로직이 상당히 번거로워진다. 그로 인하여 Null을 허용하는 대신 초기값을 설정하는 것을 권장하기도 한다. * Optional ? --> Java8 이후, Optional 클래스를 활용해 NullPointerException을 방지할 수 있다. Optional는 Null이 될 수있는 값을 감싸는 Wrapper클래스로, 변수에서 참조하더라도 NullPoinerException이 발..

BackEnd_Servers 2021.10.13

[JavaScript] 비동기(Asynchronous) 처리 - Promise (1)

* 동기(Synchronous), 비동기(Asynchronous) ? --> 동기적 처리는 요청(REQUEST)에 대한 응답(RESPONSE)을 받을 때까지 다른 작업을 수행 할 수 없다. 하나의 작업이 수행되는 동안 다른작업들은 대기상태가되며 순차적으로 처리된다. 반면에 비동기적 처리는 요청에 대한 응답결과와 관계없이 여러작업을 동시적으로 수행이 가능하며, 기다리는 과정에서 다른함수 호출도 가능하다. * Javascript Promise (ES6) ? --> 자바스크립트의 비동기처리 방식이며, 객체형태로 선언 및 사용된다. "new Promise();" 프로미스(Promise)는 수행결과에 따른, CallBack함수(성공, 실패) 분기처리가 가능하다. * Promise States ? Pending(대..

FrontEnd_JavaScript 2021.10.13

[Git & GitHub] 깃(Git)의 정의 및 실습(2)

* 깃(Git) - 커밋(Commit) ? --> 커밋이란 깃(Git)의 새롭게 반영할 목록을 패키징(Packageing) 하는 것이며, 이는, 하나의 새로운버전을 생성하는 것이다. 버전(Version)으로 관리되므로 문제발생시, 원하는 버전으로 회귀가 가능하다. Version3 -- third commit Version2 -- second commit Version1 -- first commit * 깃(Git) - 애드(Add) ? --> 커밋(Commit)으로 만들어질 파일목록을 선택 및 반영 ( NewPage[ page1, page2, page3 ] --> Add[page1, page3] --> "Commit - Create New Version" ) Git Exercise.. 1. 깃(Git) 로..

Git & GitHub 2021.10.12

[Git & GitHub] 깃(Git)의 정의 및 실습(1)

* Git(버전관리) ? - 깃(Git)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들을 작업을 조율하기 위한 분산 버전관리 시스템이다. 소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만 어떠한 집합의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. -- 참조: 위키백과(Wikipedia) - 깃(Git)은 자신이 만든 버전(Version) 간의 이동 또는 팀원이 만든 버전으로 반영할 수 있으며, 자신이 만든버전과 팀원이 만든 버전을 비교해서 최신본으로 코드를 업데이트(Merge) 할 수 있다. * GitHub(원격 저장소 - Cloud Service) ? Git Hosting Site 주관사 특징 비용 GitHub GitHub Inc --> Microsoft 세계 최..

Git & GitHub 2021.10.11

[SpringMVC] ApplicationScope(1)

Application Scope ? * Application Scope는 WAS(Web Application Server)서버가 가동될 때부터 종료되는 시점까지의 유효범위 이다. * Application Scope동안 사용할 수 있는 메모리영역이 생성되며, ServletContext 클래스 타입의 객체로 관리되어 진다. * Application Scope영역 (ServletContext)에 저장된 데이터, 객체는 WAS(Web Application Server)가 종료되기 전 까지 웹 브라우저, Client요청에 관계없이 같은 메모리 공간을 사용하게 된다. ApplicationScope Exercise.. 1. TestApplicationScopeController 컨트롤러 생성 * Application..

SpringMVC 2021.10.11

[BackEnd_Servers] 웹 소켓(WebSocket) 정의 및 활용.

Ajax, WebSocket ? Ajax WebSocket 서버와 클라이언트 간의 통신. 단방향 통신 (Client -> Server) 양방향 통신 ("Client -> Server" / "Server ->Client") SpringFramework --> ws protocol 사용 SpringBoot --> stomp protocol 사용 "SpringBoot" 기반으로 웹소켓 연습. WebSocket Exercise.. 1. pom.xml 수정 (의존성 추가) org.springframework.boot spring-boot-starter-websocket 2. WebSocketConfig 설정 파일생성 import org.springframework.context.annotation.Configur..

BackEnd_Servers 2021.10.10

[Linux] 프로세스 정보확인 (ps)

ps(process status) ? (운영체제'OS' - Linux)에서 , 현재 실행중인 프로세스의 목록과 상태를 조회하는 명령어. [ 자주사용되는 옵션 ] -e 시스템 전체 프로세스 -f Full-format (전체포멧 출력) -L Thread까지 출력 (하나의 프로세스에 Multi Thread..) -L 미사용시 프로세스의 목록출력 --forest 프로세스를 Tree형태로 구성하여 출력 (부모-자식) -o output formatting (출력 필드정보 설정) --sort 정렬적용 [ 주요코드 / 출력필드(헤더) / 의미 ] 코드 출력헤더 의미 user UID/USER 유저정보(아이디) pid PID 프로세스 아이디 ppid PPID 부모 프로세스 아이디 tty TTY 실행 터미널 cputime ..

Linux Command 2021.10.09

@RequestBody, @ModelAttribute, @RequestParam

1. RequestBody, ModelAttribute, RequestParam 설명 @RequestParam ? @RequestParam은 1개의 HTTP 요청 파라미터를 받기 위해서 사용한다. @RequestParam은 필수 여부가 true이기 때문에 기본적으로 반드시 해당 파라미터가 전송되어야 한다. 해당 파라미터가 전송되지 않으면 400 Error를 유발하게 된다. 그렇기 때문에 반드시 필요한 변수가 아니라면 required의 속성 값을 false로 설정해둘 수 있으며 해당 Parameter를 사용하지 않고 요청을 보낼 경우에 default로 받을 값을 defaultValue 속성을 지정하여 설정할 수 있다. @RequestBody ? @RequestBody는 클라이언트가 전송하는 JSON(app..

BackEnd_Servers 2021.10.08

[React.JS] 리액트Hooks. createContext, useContext 활용(1)

* contextAPI (createContext, useContext) ? --> 리액트 컴포넌트가 구조적으로 복잡할 경우 최상위 컴포넌트로 부터 전달되는 속성(Props)이 최 하위 컴포넌트에게 최종적으로 전달되기 까지 중간컴포넌트들을 거쳐 연속적인 전달과정이 발생된다. contextAPI는 사용할 속성(Props)을 저장하며 모든컴포넌트에서 전역적인 접근이 가능하다 또한, 외부에서 contextAPI를 선언하여 활용가능하다. * contextAPI 사용 ? const 컨텍스트명 = createContext('기본 값'); --> createContext() 함수를 사용하여 컨텍스트를 생성한다. 함수 내부에 파라미터로써 기본값을 설정할 수 있다. 기본값이란, 태그를 활용하지 않았을 경우 지정되는 값이..

FrontEnd_React.JS 2021.10.07

[React.JS] 리액트 커스텀 훅(Custom Hook) 생성 및 활용

* 커스텀 훅(Custom Hook) ? --> 컴포넌트에서는 반복적으로 사용하는 로직들이 발생할 수 있다. 커스텀 훅(Custom Hook)은 React에서 기본 제공되는 Hooks(useSatae, useReducer, useCallBack..)를 활용하여 여러가지 기능들을 구현하며, 해당 구현된 기능들을 외부 컴포넌트에 제공하는 역할을 한다. * 커스텀 훅을 만들시 "Prefix('use') + 구현대상" 으로 네이밍을 하는것이 관례.. CustomHook Exercise.. 1. useInputs 생성 (커스텀 훅_ustState) CASE(1) : useState활용.. CASE(2) : useReducer활용.. * 커스텀 훅(useInputs) 내부에 3가지 구현요소 (inputs, onCh..

FrontEnd_React.JS 2021.10.04