분류 전체보기131 스프링 핵심 원리 - 빈 스코프와 웹 스코프( Provider와 Proxy 활용 지연처리 ) Bean Scope지금까지 배운 스프링과 관련한 핵심 원리의 Main은 스프링 컨테이너와 Bean에 대한 이해 및 원리였다.그리고 스프링 Bean은 컨테이너의 시작과 함께 등록되어 컨테이너 종료 시점까지 유지됨을 봤다. 하지만 이는 무조건적인 사항이 아니다.Bean 생성과 소멸에 대한 적용의 범위가 존재하며, 이를 사용하여 개발에 적용할 수 있다.이것을 Bean Scope라고 부른다. Bean Scope는 다음과 같이 지정할 수 있다. 프로토타입 스코프 Bean 컴포넌트 스캔 자동 등록@Scope("prototype")@Componentpublic class HelloBean {} 수동 등록@Scope("prototype")@BeanPrototypeBean HelloBean() { return new .. Spring/SpringCore - basic 2025. 1. 14. 도커 입문 25 - 도커 compose (Nginx ,React, Spring, Mysql 연동) - 리액트와 스프링 연동 😎다룰 내용Spring서버와 DB 서버를 연동한 docker-compose를 실행하고, 리액트에서 이를 연동하여 화면을 그리는 방법에 대해 알아보자. 스프링과 DB 연동먼저, docker-compose 스크립트는 아래와 같고 스프링과 DB의 Dockerfile을 실행하고 연동하는 동작을 수행한다.services: db: build: context: ./db dockerfile: Dockerfile ports: - 3309:3306 volumes: - ./docker-test-db/store:/var/lib/mysql networks: - network server: build: context: ./product .. Docker/Docker 입문 2025. 1. 14. 도커 입문 24 - 도커 compose (Nginx ,React, Spring, Mysql 연동) - nginx 로 html 실행하기 (feat. React) 😎다룰 내용웹 서버인 Nginx에 React가 그린 html 파일을 사용하는 방법에 대해서 알아보자. React와 WS(Nginx)React를 기존에 실행하던 npm start 명령어는 node.js로 실행하는 것이다. 이는 리액트 라이브러리를 사용해서 javascript로 화면을 그리고 build하여 html을 만드는 과정이다. 그리고 이렇게 생성된 html을 웹 서버에 던져 웹 서버 내부에 html 파일을 두고 클라이언트에게 보여주는 것이 일반적이다.이번에는 Nginx를 사용하여 이러한 과정의 실습을 진행할 것이다. 이를 표현하면 아래와 같은 모식도를 가질 것이다. 이를 위해서 먼저, nginx 폴더를 만들고 도커 파일을 통해 로컬에서의 html파일을 복사하여 실행하는 과정을 살펴보겠다. Ngin.. Docker/Docker 입문 2025. 1. 10. 도커 입문 23 - 도커 compose (Nginx ,React, Spring, Mysql 연동) - Spring 서버실행 😎다룰 내용앞서 만든 리액트 구조와 더불어 스프링 서버를 연동하는 프로젝트 구조를 만든다. 스프링 구조 형성하기백엔드로 스프링 서버를 전부 구현하는 것보다 프론트부터 백엔드까지 도커를 통한 프로젝트 구조 형성을 위한 학습이기에,아래의 주소에서 ex09 폴더의 product 폴더를 복사 붙여넣기하여 진행하겠다.https://github.com/codingspecialist/docker-study/tree/main GitHub - codingspecialist/docker-studyContribute to codingspecialist/docker-study development by creating an account on GitHub.github.com 그럼 아래와 같은 폴더 구조를 가지게 될 것이다... Docker/Docker 입문 2025. 1. 7. 스프링 핵심 원리 - Bean 생명주기 콜백 Repeat is the best medicine for memory Bean 생명주기와 활용 문제 상황 보통 어플리케이션의 동작에는 외부 라이브러리나 api, 네트워크 연결 등등과 같이 다양한 외부 자원들과의 연동을 필요로한다.예를 들어, 데이터베이스의 connection pool, network socket 처럼 어플리케이션의 시작과 함께 필요한 연결을 미리 동작하는 과정이 필요할 것이다. 그리고 이러한 동작 수행에 있어 스프링 컨테이너 생성 및 Bean 등록과 관련한 라이프 사이클과 관련하여 어떻게 필요한 작업을 수행하는 지에 대해서 알아보자. 아래는 간단하게 외부 네트워크에 미리 연결하는 객체의 예시로 어플리케이션의 시작 시점에 connect()으로 연결하고, 종료 시점에는 disConnect().. Spring/SpringCore - basic 2025. 1. 4. 리액티브 프로그래밍( reactive streams ) reactive streams 표준 라이브 러리에 대한 이해와 실습reactive streams은 데이터 스트림을 Non-Blocking하면서, 비동기적 방식으로 처리하기 위한 리액티브 라이브러리 표준 사양이다.즉, 리액티브한 코드를 작성하기 위한 라이브러리로 개발자는 보다 쉽게 리액티브 어플리케이션을 구성할 수 있게 만든다. 이를 실습하기 위해서 우선, java 프로젝트를 생성한 후에 해당 라이브러리를 사용하기 위한 빌드를 해준다. Gradle을 기준으로 아래와 같은 의존성을 주입해준다.// https://mvnrepository.com/artifact/org.reactivestreams/reactive-streams implementation group: 'org.reactivestreams'.. Spring/WebFlux 2025. 1. 3. 도커 입문 22 - 도커 compose (Nginx ,React, Spring, Mysql 연동) - React학습 😎다룰 내용도커를 사용해서 전체적인 구조와 환경을 갖추기 전에 React에 대한 이해를 위한 학습을 진행해본다. Node.js 환경에서 JavaScript 실행하기 먼저 실습을 진행하기 위해서 node.js를 설치하고 폴더를 다음과 같이 생성하였다. 원래 javascript는 브라우저에서 작동하지만 node를 설치하였기에아래와 같이 코드를 작성한 후에 명령어를 입력하면 코드에 대한 출력문이 나오는 것을 확인할 수 있다. 리액트 사용하기 리액트 실행하기 이제 리액트를 사용해보자.리액트 공식 페이지에 들어가면, 리액트를 시작하는 방법에 대해 나와있다. 이에 따라, 명령어를 입력하면 좌측과 같은 폴더들이 생성된다. 그리고 다음과 같은 명령어를 입력하고 출력되는 화면이 확인된다면, 정상 작동하는 것이다.. Docker/Docker 입문 2025. 1. 3. 도커 입문 21 - 도커 compose (Nginx ,React, Spring, Mysql 연동) - 시작 😎다룰 내용앞으로 Docker Compose를 통해서 Nginx + React + Spring + Mysql 환경을 갖추는 방법에 대해서 알아보겠다. 전체적인 흐름앞으로 진행할 내용의 전체적인 흐름을 잡아보자면, Nginx 프록시 서버(80) → 리액트(3000) → 스프링(8080) → DB(3306) 아래와 같은 형태를 지닐 것이다. 이어서 각각 도커를 활용하여 설치하고 구성하는 방법에 대해 다뤄보겠다. Docker/Docker 입문 2025. 1. 3. 깃헙 projects로 프로젝트 관리 😎다룰 내용깃헙 projects로 프로젝트 관리하는 방법에 대해서 정리한다. 프로젝트를 진행하다보면, 보통 Jira와 같은 상용 소프트웨어를 사용하여 프로젝트 구성원 간 커뮤니케이션을 원활하게 하고 워크 플로우를 공유한다. 그런데 이와 같은 기능을 Git Hub을 통해서도 사용할 수 있는데, 만약 형상관리 툴로 이미 GitHub을 사용하고 있다면, 프로젝트 커뮤니케이션 및 워크플로우 공유를 위한 Tool로 GitHub projects을 사용하는 것도 괜찮은 선택지일 것이다. MileStone 설정하기깃헙 로그인 후에 진행 중인 프로젝트의 레포지토리에 들어가면 아래와 같은 항목들이 있다. 먼저, Issue에 들어가면, 작업 상태값으로 사용할 값들의 설정이 담긴 Labels와 개발 일정과 관련하여 .. etc 2025. 1. 2. 스프링 핵심 원리 - 의존관계 주입 방법들에 대한 원리과 Lombok 활용, 같은 타입의 Bean 충돌 해결과 활용법( @Qualifier, @Primary, 가변적 활용 ) Repeat is the best medicine for memory스프링의 컨테이너에 대한 이해와 Bean 등록 방법들에 대해서 알아보았다.이제 의존성 주입과 관련한 스프링의 원리와 활용법들에 대해서 파악해보겠다. 실제 개발 환경에서 하나의 계층에 있는 객체는 다른 계층의 객체를 필요로 하는 경우가 대부분이다.( 예를 들어, 서비스 계층의 객체는 레파지토리 계층의 객체를 필요로한다. )그리고 이와 관련하여, 의존성 주입 시 @Configuration을 활용한 CGLIB 기술로 싱글톤을 지키는 방법에 대해서도 알아보았다. 더 나아가, 의존관계 주입의 다양한 방법과 원리 및 활용법들에 대해서 살펴보자. 의존관계 주입 방법의 종류 의존관계 주입에는 크게 4가지의 방법이 있다. 각 주입 방법에 대해 파악해보자.. Spring/SpringCore - basic 2024. 12. 31. 도커 입문 20 - 도커 compose (spring, mysql 연동 - 각 dockerfile 작성과 compose 구성), 동일 네트워크 구성 방법과 이점 😎다룰 내용도커 컴포즈로 spring boot와 mysql을 연결하고 실행하는 과정을 알아본다. 연동에 있어 고려할 점 mysql 정보도커 컴포즈를 활용해서 spring boot와 mysql을 연결하기 위해서는 mysql의 연결 url, IP, PORT, ID, Password 등을 알아야한다. 가상화 환경Docker를 통한 가상화로 실행하려면 로컬에는 필요한 프로그램 설치가 없어도 괜찮다. 대신 이 경우에 고려할 점들이 있는데, ✅ spring 서버와 mysql 서버를 동일 네트워크로 묶어주는 것✅ 데이터를 저장할 볼륨을 지정하는 것 ✅ 두 서버를 연동하는 것 이에 대한 모식도는 아래와 같다. 이를 실행하기 위한 폴더에서 실습을 위한 아래의 깃 레퍼지토리 코드를 사용해서 진행한다.https://gi.. Docker/Docker 입문 2024. 12. 30. 도커 입문 19 - 도커 compose 튜토리얼 따라하기(flask, redis, 캐시 삭제) 😎다룰 내용도커 컴포즈에서 제공하는 튜토리얼에 따라 flask와 redis를 사용하는 웹 애플리케이션 서비스 과정을 실습해보겠다. https://docs.docker.com/compose/gettingstarted/ QuickstartCheck out this tutorial on how to use Docker Compose from defining application dependencies to experimenting with commands.docs.docker.com Flask 기본 사용먼저 간단하게 flask사용법에 대해 파악하기 위해서 설치 후에 다음과 같은 코드를 작성하고 실행하였다. from flask import Flaskapp = Flask(__name__)@app.route('.. Docker/Docker 입문 2024. 12. 30. 이전 1 2 3 4 5 6 ··· 11 다음