본문 바로가기

IT57

[Spring boot] Spring Singleton Bean Java Singleton PatternJava의 Singleton Pattern이란 무엇일까?Singleton 패턴은 인스턴스를 불필요하게 생성하지 않고,오직 JVM 내에서 한 개의 인스턴스만 생성하여 재사용을 위해 사용되는 디자인 패턴이다.하지만 멀티스레드 환경에서 문제가 생길 수 있어, Thread-safe 한 형태로 구현해야 한다.따라서 synchronized를 이용하여 Singleton 패턴을 대부분 구현할 수 있다.public class Singleton { private static Singleton instance; private Singleton(){} public static synchronized Singleton getInstance() { if(instance == null).. 2024. 8. 9.
[Spring boot] Application Context Application Context란?Application Context란 무엇일까?먼저 Spring framework는 IoC 개념이 적용된 대표적인 기술이다.IoC( Inversion of Control )란 제어의 역전을 의미하며, 전통적인 프로그래밍에서는 개발자가 프로그램의 흐름과 제어를 직접 다루지만, IoC는 프레임워크 자체가 객체의 생성, 관리, 제어 흐름을 담당하도록 변경하는 개념이다. Spring은 IoC를 지원하기 위해 Application Context라는 컨테이너를 제공한다.즉 Applicatation Context란 애플리케이션 전반에 걸쳐 모든 구성요소의제어작업을 담당하는 IoC 엔진이라고 할 수 있다. 빈의 생성과 관계 설정 같은 제어를 담당하는 IoC 컨테이너인 빈 팩토리가 .. 2024. 8. 9.
[React] Axios 통신을 위한 Custom Hook 사용 Custom Hook이란?정규 함수와 같지만 안에 상태를 포함할 수 있는 로직 함수기존의 React Hook과 다른 Hook을 동시에 사용할 수 있다.React에서 useState or useEffect와 같은 Hook을 사용할 경우React 함수 컴포넌트에서만 호출이 가능하다.즉 일반적인 JavaScript 함수에서 호출이 불가능하다. Custom Hook이 필요한 이유위에서 본 것처럼 React Hook을 사용하기 위해서는 조건이 있다.React 함수 컴포넌트에서만 호출이 가능하다는 조건이다.따라서 일반적인 JavaScript 함수에서는 호출이 불가능하다.const MainComponent = () => { const [number,setNumber] = useState(0); return.. 2024. 8. 7.
[React] useContext 상태 갱신 문제 UseContext의 사용 이유React에서 데이터는 부모에서 자식에게 props를 통해 전달된다.그러나 application 전체에 데이터를 전달해야 줘야 할 경우 props를 사용한다면props chain이 너무 길어지는 문제점이 발생한다.따라서 useContext는 이를 해결하기 위한 Hook으로 저장소 같은 역할을 한다.따라서 명시적으로 props를 전달하지 않고도 전역 데이터를 사용할 수 있다.useContext를 통해 로그인한 유저의 정보를 저장하거나application에서 사용하는 전역 변수들을 저장소로서 저장하고 데이터 조회 및 변경도 가능하다.import React from "react";const loginContext = React.createContext({ id : 0, .. 2024. 8. 7.
[Spring boot] 이메일 전송 구현 개발 환경Spring boot 3.1.9Java 17IntelliJMaven Dependency 추가- pom.xml 수정Spring boot를 통해 이메일 인증을 구현하기 위해서는 메일 서버와 연결하기 위한라이브러리 추가 및 SMTP(프로토콜)에 대한 이해가 필요하다.SMTP 프로토콜 : 네트워크를 통해 전자우편을 전송하는 기술 표준이다.SMTP 서버 : SMTP 프로토콜을 이용해 이메일을 전송하고 수신할 수 있는 메일 서버Spring boot mail starter : 메일 서버와 연결하기 위해 필요한 라이브러리 org.springframework.boot spring-boot-starter-mail pom.xml에 해당 의존성을 추가한다.의존성 추가 후 Maven Build를 누르면 정상.. 2024. 8. 7.
[Spring boot] Restful API 등장과 ReponseEntity Restful API의 등장Restful API란 무엇일까?두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스AWS에 나와있는 정의를 살펴보면 다음과 같이 정의된다. 즉 서로 다른 시스템에서 정보를 교환하고, 데이터 통신을 지향하기 위한 규약이라고 말할 수 있다. 쉽게 말하면 ServiceA라는 시스템에서 어떠한 데이터를 다른 ServiceB라는 시스템에게 전달하고자 할 때 어떠한 형태로 데이터를 보내줄지에 대한 규약이다. 배경을 좀 더 살펴보면 PC 이외에도 모바일, 태블릿 등 여러 가지의 기기들이 나오면서 해당 스마트 기기마다 서로 다른 서버를 만드는 것은 비효율적인 일이 되었다. 따라서 하나의 서버에서 데이터와 로직을 생성하고, Client Side에서만 해당 스마트.. 2024. 8. 7.

loading