728x90
반응형

Java Spring 8

AOP (Aspect Oriented Programming, 관심 지향 프로그래밍)

AOP (Aspect Oriented Programming, 관심 지향 프로그래밍)애플리케이션을 개발할 때에 구현해야 하는 기능들은 크게 공통 관심 사항과 핵심 관심 사항으로 분류할 수 있습니다.먼저, 핵심 관심 사항은 애플리케이션의 핵심 기능과 관련된 관심 사항으로,커피 주문 애플리케이션을 예로 든다면 메뉴 등록하기, 주문하기, 주문 변경하기 등이 있을 것입니다. 반면, 공통 관심 사항은 모든 핵심 관심 사항에 공통적으로 적용되는 관심 사항들을 의미합니다. 예를 들어, 메뉴 등록하기, 주문하기, 주문 변경하기 등 모든 핵심 관심 사항에는로깅이나 보안 등과 관련된 기능들이 공통적으로 적용되어야만 합니다. 이 때, 핵심 관심 사항과 공통 관심 사항이 코드에 아래와 같이 함께 모여 있으면필연적으로 공통 관심..

Java Spring 2024.12.26

IoC / DI (Inversion of Control / Dependency Injection, 제어의 역전 / 의존성 주입)

IoC / DI (Inversion of Control / Dependency Injection, 제어의 역전 / 의존성 주입)Java 애플리케이션의 동작 흐름에서 중요한 것은 무엇일까요?아무래도 Java는 객체지향 언어이므로, 객체들 간의 관계를 적절히 맺어주는 것이 중요한 요소일 것입니다.객체들 간에 관계를 맺어준다는 것은 거창한 것이 아닙니다. A 인스턴스가 B 인스턴스의 메서드를 호출하고 있다면 A는 B와 의존 관계를 맺은 것이 되며,이 둘의 관계를 “A가 B에 의존하는 관계”라고 표현할 수 있습니다. A가 B의 기능을 가져다가 사용하고 있으니까요.   위의 A와 B의 의존 관계는 개발자에 의해 만들어집니다.개발자가 직접 new 키워드를 사용하여 인스턴스를 생성하는 코드를 작성했기 때문입니다.그런..

Java Spring 2024.12.26

DAO, DTO 란?

DTO(Data Transfer Object)와 DAO(Data Access Object)는 소프트웨어 개발에서 자주 사용되는 디자인 패턴 또는 개념으로, 주로 데이터 처리와 관련된 구조를 명확히 하고 코드의 재사용성을 높이기 위해 사용됩니다.DTO (Data Transfer Object)DTO는 계층 간 데이터 교환을 위한 객체입니다. 주로 데이터베이스, 비즈니스 로직, 또는 클라이언트와 서버 사이에서 데이터를 전송하기 위해 사용됩니다.DTO는 순수한 데이터 구조로, 데이터의 필드와 이를 가져오거나 설정하기 위한 getter/setter만 포함하며, 비즈니스 로직을 포함하지 않습니다.주요 특징데이터 전달 목적: 주로 컨트롤러와 서비스 계층 간, 또는 API 응답으로 사용.비즈니스 로직 없음: 데이터를 ..

Java Spring 2024.12.24

Server-Sent Events vs WebSockets

Server-Sent Events (SSE)와 WebSockets는 실시간 통신을 위해 사용되는 두 가지 기술입니다. 각 기술의 특징, 장점, 단점, 그리고 사용 사례를 비교해보겠습니다. ### Server-Sent Events (SSE) **특징:** - HTTP 기반의 단방향 통신. - 클라이언트가 서버에 연결을 시작하고, 서버는 지속적으로 데이터를 클라이언트로 전송. - 텍스트 기반의 데이터 전송. - HTML5 표준의 일부. **장점:** - 구현이 비교적 간단하고, 기존 HTTP 인프라와 잘 통합됨. - 브라우저에서 기본 지원 (추가 라이브러리 필요 없음). - 자동 재연결 및 연결 손실시 이벤트 제공. - 헤더 설정을 통해 캐시 및 프록시와 호환 가능. **단점:** - 단방향 통신만 가능 (..

Java Spring 2024.07.02

Spring CMD 환경에서 빌드하기

cmd 창에서 순서대로 하면 됩니다. 1. cmd창 켜고, 스프링 프로젝트가 있는 폴더로 이동 > cd 폴더경로 2. gradlew 명령어 실행 (아래 순서대로 입력) > gradlew.bat 빌드 성공 > gradlew build 3. 실행파일(.jar) 찾아가기 > cd build > dir //build 폴더의 파일/디렉터리 보기 libs 폴더가 있음 > cd libs > dir libs 폴더 안에 자바 실행파일(.jar)이 있음 4. 실행 > java -jar 파일명 스프링 프로젝트가 실행됩니다. --> 실행 성공 ※참고 cmd 창에서 실행한 경우, 인텔리제이에서 동시에 실행하면, 같은 포트 번호를 사용하게 되므로 에러 납니다. 서버에 배포시에는 jar 파일만 복사를 해서 서버에 넣어주고, jav..

Java Spring 2024.03.04

Spring 프로젝트 생성 및 시작하기 ( IntelliJ & Spring initializr )

https://start.spring.io/ 1. 스프링 이니셜라이저를 통해서 스프링 프로젝트 생성 GENERATE 를 하게되면 .Zip 파일이 생성된다. 생성된 .Zip 파일을 원하는 위치( 프로젝트 위치 ) 에 압축을 해제 한다. 2. IntelliJ를 실행하여 압축을 푼 디렉토리에가서 build.gradle 를 선택후 실행을 한다. as Project 로 실행을 한다. 3. 빌드 구조 설정 IntelliJ -> File -> Settings (또는 Preference ) 에서 빌드를 IntelliJ IDEA로 설정하고 작업을 한다. 이걸 해주면 자바가 그레이들을 통하지 않고 바로 인텔리제이를 통해서 바로 실행 ( 속도 향상 ) 4. main 함수가 있는 곳에가서 실행을 한다. 실행후 톰캣이 실행이 ..

Java Spring 2024.03.04

Java Spring 의존성 추가 방법 ( IntelliJ)

1. 프로젝트 폴더 최상단에서 build.gradle 파일 열기 2. dependencies에서 우클릭 - Generate - Add Dependency 3. 필요한 dependency 검색 후 add 4. 우측 Gradle 뷰에서 새로고침 버튼 클릭 - 우측에 없는 경우 상단 메뉴 View - Tool Windows - Gradle 클릭 https://maicoding.tistory.com/69 [Spring] IntelliJ에서 build.gradle 의존성(dependency) 추가하기 Spring 공식문서 가이드를 훑어보는 중에 매번 Spring Initializer를 이용하여 프로젝트를 생성하는 건 너무 번거롭다고 판단되어 그때그때 필요한 의존성을 추가하고자 했다. 이전에 Maven 사용 시에는..

Java Spring 2024.03.04
728x90
반응형