728x90

Programming 281

React - React.js 기초 (설치 및 실행)

- React.js 1. 반복적인 코드를 줄 일 수 있다. - 컴포넌트와 방식을 사용하기 때문에 중복된 코드로 인한 산탄총 수술을 할 필요가 없어진다. - 즉, React는 Component 기반의 UI 라이브러리이다. 2. 선언형 프로그래밍으로 목적을 바로 나타낸다. - 프로그래밍 방식에는 명령형 프로그래밍 (대표적으로 jQuery)가 있고, 선언형 프로그래밍에는 (React)가 있다. - 선언형 플로그래밍은 목적을 바로 나타내기 때문에 코드의 목적이 간결하고 확실해진다. 3. V irtual DOM - DOM (Document Object Model)은 태그, 아이템이 코드에 추가 될 때마다 브라우저가 웹 페이지를 보여주기 위해 동작하는 흐름이 계속해서 반복적으로 일어난다. - React는 Virtu..

Programming/React 2023.09.14

React - Node.js 설치 및 사용 (기본, npm)

- Node.js - JS는 JS 엔진 위에서 동작하게 된다. 대표적으로 Chrome의 V8 JS 엔진이 대표적인 JS 엔진이다. - JS는 웹브라우저 안에서만 동작하고 html 문서 안에서 동작하게 된다. - Chrome의 V8 엔진을 브라우저가 아닌 어디서든 사용할 수 있도록 시작한 프로젝트가 Node.js이다. - 즉, Node.js JS의 실행 환경이고 JS엔진이며 어디서든 JS를 사용할 수 있도록 도와준다. + JS로 Web Server를 생성하는 것이 가능해졌다. - 결론적으로 React는 JS 파일을 쉽게 만들어내는 기술이다. React는 Node.js를 기반으로 실행된다. https://nodejs.org/ko Node.js Node.js® is a JavaScript runtime bui..

Programming/React 2023.09.14

Javascript - 응용(동기&비동기, Promise, async&await, API 호출하기)

- 동기 & 비동기 - 동기 - Javascript는 코드가 작성된 순서대로 작업을 처리한다. - 이전 작업이 진행 중 일 때는 다음 작업을 수행하지 않고 기다린다. - 먼저 작성된 코드를 먼저 다 실행하고 나서 뒤에 작성된 코드를 실행한다. - 비동기 - 싱글 쓰레드 방식을 이용하면서, 동기적 작업의 단점을 극복하기 위해 여러 개의 작업을 동시에 실행 시킨다. - 즉, 먼저 작성된 코드의 결과를 기다리지 않고, 다음 코드를 바로 실행한다. function taskA(a,b, cb) { // console.log("A 작업 끝"); setTimeout(() => { const res = a + b; cb(res); }, 3000); } function taskB(a, cb){ setTimeout(() =..

Programming/React 2023.09.11

Javascript - 기본, 응용(배열 내장 함수, Truthy & Falsy, 삼항 연산자, 단락회로 평가, 조건문 업그레이드, 비 구조화 할당, Spread 연산자) +a

- 함수 // 콜백 함수 사용 function checkMood(mood, goodCallback, badCallback) { // 함수 파라미터로 함수를 사용할 수 있다. if(mood === "good"){ // 기분 좋을 때 하는 동작 goodCallback(); } else { // 기분 안 좋을 때 하는 동작 badCallback(); } } function cry() { console.log("ACTION :: CRY"); } function sing() { console.log("ACTION :: SING"); } function dance() { console.log("ACTION :: DANCE"); } checkMood("sad", sing, cry); let person = { nam..

Programming/React 2023.09.11

Spring - @Builder, @Builder.Default, @NoArgsConstructor에 관하여...

* 결과부터 얘기하자면 1. @Builder + @Builder.Default 사용 - 디컴파일 부분을 확인해보면, page, size의 필드가 초기화 되어 있지 않고, builder에 의한 default에 의한 값이 설정되어 있어 파라미터로 값이 넘어오지 않으면 null이 주입된다. 2. @Builder만 사용 - 디컴파일 부분을 확인해보면 @Builder.Default가 빠지게 되면, 기본 필드에 설정한 1, 10 값이 필드에 그대로 남아 있는 것을 확인 할 수 있지만, 생성자 주입에 의해 파라미터로 아무런 값이 넘어오지 않으면 null로 초기화 된다. 3. @Builder, @NoArgsConstructor, @AllArgsConstructor 사용 - 기본 생성자가 생성되고, 매개변수로 아무런 값..

Spring - 문서화 (Rest Docs 문서)

- Rest Docs는 Spring MVC를 사용하는 REST API를 문서화하는데 도움을 주는 프로젝트이다. - Restful 서비스를 문서화하는 것은 주로 해당 리소스를 설명하는 것이다. HTTP 요청과 생성되는 HTTP 응답의 세부정도이다. - 빌드 구성 plugins {// 1. id "org.asciidoctor.jvm.convert" version "3.3.2" } configurations { asciidoctorExt// 2. } dependencies { asciidoctorExt 'org.springframework.restdocs: spring-restdocs-asciidoctor:{project-version}'// 3. testImplementation 'org.springfram..

Programming/Spring 2023.09.08

2023.09.07.THU

- @RequestBody - HTTP 요청읜 본문(body) 데이터를 Java 객체로 변환하는 역할을 한다. 일반적으로 클라이언트가 POST 또는 PUT 요청을 보낼 때, 요청 본문에 JSON 또는 XML과 같은 데이터를 포함하고 있을 수 있다. 이 데이터를 Java 객체로 변환하기 위해 @RequestBody 어노테이션을 사용한다. - gradle - gradle 설정에서 ' ' 작은 따옴표는 문자열을 감싸는 데 사용된다. 변수 치환이 발생하지 않는다. - gradle 설정에서 " " 큰 따옴표는 문자열을 감싸는 데 사용된다. 변수 치환이 발생한다.

Programming/TMP 2023.09.07

Spring - 예외 처리

- 기존의 Controller에서 발생하는 예외들은 @ControllerAdvice 어노테이션이 붙은 클래스에서 처리가 가능하다. - @ControllerAdvice는 전역 예외 처리가 가능하고 예외가 발생했을 때 처리할 수 있는 공통 로직을 제공한다. - PostCreate.java ..... @NotBlank(message = "title을 입력해주세요") private String title; @NotBlank(message = "content를 입력해주세요") private String content; ..... - Post 엔티티에 대한 DTO에 해당하는 PostCreate는 @NotBlank 어노테이션으로 인해 스프링이 제공하는 기본적인 검증이 이루어 진다. - 하지만 기본적으로 제공하는 검증..

Programming/Spring 2023.09.06

Spring, Java - Builder 패턴 분석

- 결론부터 얘기하자면 Builder 패턴을 사용하게 되면, build() 메서드가 호출되기 전까지는 builder 클래스 안에 데이터가 저장되어 있다가 build() 메서드가 실행된 후에 해당 객체 필드에 값이 들어가게 된다. - 아래 예를 통해 데이터 주입 과정을 알아 볼 것이다. 1. Post, PostEditor라는 엔티티가 생성되어 있다. 2. Post에는 아래와 같이 toEditor(), edti() 메서드가 작성되어 있다. public PostEditor.PostEditorBuilder toEditor() { return PostEditor.builder() .title(title) .content(content); } public void edit(PostEditor postEditor) ..

Programming/Spring 2023.09.06
728x90