전체 글 128

React Series (3) 리액트 코드 작성하는 방법 (import, export, 조건부 렌더링)

리액트 컴포넌트 사용하는 방법 컴포넌트 가져오는 방법 : 내보낸 컴포넌트는 import를 통해 가져와 사용할 수 있습니다.import React from 'react' // 기본 가져오기import { name } from ... // 명명 컴포넌트 가져오기 컴포넌트 내보내는 방법export default React // 기본 내보내기 (함수명 그대로 컴포넌트명이 됩니다.)export {name} // 명명 컴포넌트 내보내기 (함수명 대신 name이 컴포넌트명이 됩니다.)  조건부로 렌더링하는 방법// 첫 번째 방법fuction MyComponent(props) { const isLoggedin = props.isLoggedin; if(isLoggedin) { return ( ..

Frontend Basic 2024.12.18

React Series (1) 리액트가 무엇인지 이해하기 (component)

리액트의 정체리액트는 사용자에게 보여지는 것을 개발하기 위한 자바스크립트 라이브러리입니다. 여기서 '사용자에게 보여지는 것'이라면 UI를 말하는 것이고, 자바스크립트 라이브러리라 함은 자바스크립트 언어를 기반으로 만들어진 코드 무더기라는 의미로 간단히 이해할 수 있습니다. 여기서 우리는 알 수 있습니다. 아, 리액트를 알려면 자바스크립트를 잘 알아야겠구나! 제 리액트 시리즈에서는 당연히 자바스크립트에 대해서도 공부합니다. 다만 리액트를 다루기 위해 자바스크립트의 모든 것을 알 필요는 없기 때문에 아주 기초적인 것에 더해, 리액트를 위한  자바스크립트를 학습할 예정입니다. 자바스크립트를 학습함으로써 리액트을 어떻게 사용할 것인가를 알아보기 앞서, 일단 리액트의 특징부터 살펴보면서 느낌만 잡고갑시다. 리액트..

Frontend Basic 2024.12.18

Git : 깃허브에 이미 올린 커밋 메세지 변경하는 방법

커밋 메시지 변경작업을 하다보면 이미 깃허브에 올린 커밋 메세지만 변경하고 싶을 때가 있는데요. 그럴 때 커밋을 삭제하지 않고 커밋 메세지만 수정하는 방법을 알아봅시다.  1) CMD 창에서 cd 명령어를 통해 로컬 프로젝트 파일의 경로까지 이동해줍시다. 가장 최근의 커밋 메시지을 변경하라는 의미의 명령어를 입력해주고 Enter를 치면 Editor 창이 뜹니다.CF. CMD 창에서 D 드라이브로 이동하는 방법 ' D: ' 입력cd D:\project\project-portfolio\basicmallgit commit --amend  2) Editor 창에는 기존의 커밋 메세지가 떠 있고, 이를 원하는 메세지로 일단 수정해줍시다.3) Editor 창을 나가야 하는데요. 그 방법은 ESC를 눌러 Edito..

About Project/Tools 2024.12.10

JPA : QueryDSL 사용하는 방법 (feat. @Query과의 비교)

QueryDSL 왜 사용할까QueryDSL은 자바 라이브러리로, 메소드 체이닝 방식으로 쿼리를 작성합니다. 객체 지향적으로 쿼리를 작성하므로 컴파일 타임에 오류를 잡을 수 있으며 동적으로 조건을 추가하거나 제거할 수 있습니다.  그렇다면 @Query 어노테이션과는 어떻게 다를까요? @Query 어노테이션과 QueryDSL은 둘 다 JPA와 함께 사용하여 데이터베이스 쿼리를 작성하는 방법이지만, 사용 방식과 장단점이 다릅니다. JPA의 쿼리메서드만 사용하면 간편하고 자바 프로그래밍 언어로 쿼리를 조작할 수 있다는 장점이 있지만, 복잡한 쿼리문은 어렵다는 단점이 있었습니다. 이러한 문제점은 쿼리메소드에 @Query 어노테이션을 함께 사용하여 극복할 수 있습니다. 다만, @Query 어노테이션은 아래와 같은 ..

Data Structure : 자료구조의 개념과 종류

책에서는 자료구조(Data Structure)에 대해 이렇게 설명합니다. '자료구조란, 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계로, 여기서 데이터 단위란 데이터를 구성하는 하나의 덩어리라고 생각하면 된다. 이를 보다 쉽게 이해하자면 자료구조는 자료를 효율적으로 사용할 수 있도록 컴퓨터에 저장하는 방법을 말한다.' 이미 자료구조가 무엇인지 아는 사람에게는 이해가 어렵지 않지만, 모르는 사람에겐 다소 어렵습니다. 프로그램의 수행은 자료(Data)와 그 자료를 활용하는 명령어들로 이루어집니다. 자료는 데이터와 같은 말로, 그렇다면 자료구조는 자료들을 어떤식으로 효율적으로 구성하느냐의 문제입니다. 여기서 구성되느냐의 의미는 프로그램 수행 시 효율적으로 수행될 수 있는 메모리에 저장하는 방식을..

Coding Test/Theory 2024.12.03

SpringBoot : 예외처리하는 여러가지 방법

목차➡️ 기본 01 : Custom Exception 생성하는 방법➡️ 기본 02 : HTTP 상태 코드와 응답 메시지 설정하는 방법➡️ 기본 03 : 예외 로그 기록하는 방법➡️ 선택 01 : @ExceptionHandler를 사용한 예외처리➡️ 선택 02 : @ControllerAdvice 사용한 전역처리(예외처리, 공통작업, 데이터 바인딩 및 모델 처리)➡️ 선택 03 : @RestControllerAdvice 사용한 예외처리➡️ 선택 04 : @ResponseStatus를 사용한 예외처리➡️ 선택 05 : @Valid와 BindingResult 클래스를 사용한 검증 오류 처리➡️ 선택 06 : @Validated와 BindingResult 클래스를 활용한 예외 처리➡️ 선택 07 : AOP (As..

Software Design : Object, DTO, VO 비교하기

PS. 셋은 엄밀히 말하면 다른 용어입니다. 제가 알아본 바에 따르면 VO의 불변성에 의해 Setter를 쓰지 않는 것이 원칙이지만, 실무에서 간혹 VO(값 객체)에 Setter를 사용하기도 하는 것을 확인했습니다. 그리고 그렇게 했을 때 사실상 클래명만 VO로 하는 경우도 많아 프로그램이 동작하는 데에도 차이가 없었습니다.  Object : 엔터티(데이터베이스에서의 용어), 객체(프로그래밍에서의 용어) VO(Value Object) : 값 객체, 불변 객체불변성(Immutable) : Setter와 같은 가변 로직이 없는 불변 상태여야 한다.동등성(Equality) : VO 객체의 주소 값이 다르더라도 값이 같다면 동등한 객체로 판단한다.자가 유효성 검사(Self-Validation)// VO (Val..

Spring Security Library : HttpSecurity Class

➡️ HttpSecurity 객체란?HttpSecurity 객체는 스프링 시큐리티에서 HTTP 요청에 대한 보안 설정을 구성하는 주요 클래스로, 이를 이용하여 URL 패턴에 대한 인증, 권한 부여, CORS 설정, 세션 관리 등 다양한 보안 관련 설정을 할 수 있습니다.  어떤 URL 경로가 인증을 요구하는지어떤 URL 경로는 누구나 접근할 수 있게 할지요청에 대해 어떤 방식으로 인증을 처리할지import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builder..