전체 글 (119) 썸네일형 리스트형 전반적인 Spring 생태계 이해 (2) - 유닛 테스트(Unit Test) 이전의 전반적인 Spring 생태계 이해 (1) - 웹 애플리케이션 계층에서 구현한 Repository와 Service를 구현했던 코드를 검증하기 위한 유닛 테스트 코드를 작성할 것이다.Repository 테스트 코드 구현개발한 코드가 정상적으로 동작하는지 확인이 필요하다. 간단한 방법은 개발한 기능을 실행해서 테스트 할 때 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해 클라이언트의 요청을 처리하여 해당 기능을 실행한다. 하지만 이러한 방법은 준비하고 실행하는데 오래 걸려서 반복 실행이 어렵다. 그리고 여러 테스트를 한번 에 실행하기 어렵다는 단점이 있다. Java에서는 일반적으로 JUnit이라는 프레임워크로 작성한 테스트 코드를 실행해서 이러한 문제를 해결한다. 위에서 Memo.. 전반적인 Spring 생태계 이해 (1) - 웹 애플리케이션 계층 구현 전반적인 Spring 기반의 애플리케이션 개발에 대해 이해하기 위해 학습하며 작성한 글이다.비즈니스 요구사항 정리전반적인 Spring 생태계 이해를 위해서 아주 간단한 회원 관리 예제로 진행된다.데이터: 회원ID, 이름기능: 회원 등록, 조회데이터베이스: 아직 데이터베이스가 선정되지 않음 (향후 다른 종류의 DB 교체를 위한 가상 시나리오)웹 애플리케이션 계층 구조다음은 일반적인 웹 애플리케이션 계층 구조(Web Application Hierarchy)이다. 컨트롤러(Controller): 웹 MVC의 Controller 역할이며, 클라이언트의 요청에 대해 Service, Model, View에서 각 작업을 처리하도록 함으로써 애플리케이션의 작업 처리 흐름을 제어한다.모델(Model): 뷰(view)에 .. [Linux] 리눅스의 파일 I/O 자원 관리 I/O Resource Leak 발생 상황Java 애플리케이션에서 입출력(I/O)관련 클래스를 사용하여, 파일을 read() 했다면 close() 메서드를 호출해야 한다. 파일을 열은 후에 닫지 않으면 파일 디스크립터가 참조하는 자원이 메모리에서 해제되지 않아서 자원 누수(Resource Leak)가 발생할 수 있다. 자원이 누수되면 프로세스나 시스템에서 열 수 있는 파일의 수가 줄어들며, 결국 새 파일을 열 수 없게 될수 있다. 그렇다면 파일 디스크립터(File Descriptor)는 무엇이고, 어떠한 자원을 어떻게 참조하는지 알아보자.File Descriptor의 참조 자원리눅스의 파일 시스템에서는 프로세스마다 파일 디스크립터 테이블(File Descriptor Table)이 할당되고, 프로세스가 .. [Java] 프록시 패턴 (Factory Pattern) DI(Dependency Injection)와 IoC(Inversion of Control) 글에 이어서, 프록시 패턴(proxy pattern)에 대해서 설명하려고한다. 아래의 프록시 패턴의 코드 예제는 이 링크에 이어서 작성을 한다. [Java] DI(Dependency Injection)와 IoC(Inversion of Control)의존성 주입(Dependency Injection) 및 IoC, DIP, Factory 패턴을 설명하기 위해서, Oauth를 사용한 애플, 구글, 페이스북 로그인 구현시에 필요한 인증(Authentication)을 예시로 들것이다.객체의 내부에서 의존devjohnpark.tistory.com 프록시 패턴 (Factory Pattern)프록시 패턴 적용 예제기존의 객체들.. [Spring] 스프링 웹 개발 방식 (Static Content, MVC, API) Spring 웹 개발 방식은 크게 3가지 방식으로 나눌수있다. 정적 컨텐츠(Static Content), MVC(Model-View-Controller) 그리고 API(Application Programming Interface)가 있다. 정적 컨텐츠는 HTML(Hyper Text Markup Language)과 같은 텍스트 파일을 그대로 웹브라우저에게 전달한다. 반면, MVC(Model-View-Controller)와 Template Engine은 서버에서 동적으로 텍스트 파일에 데이터를 삽입하여 변형을 하고 렌더링하여 웹브라우저에게 보내주는 방식이다. 그리고 API(Application Programming Interface)는 주로 JSON 데이터 포맷으로 데이터만 클라이언트에게 전송하거나, 서버끼.. [Spring] Spring Boot 프로젝트 생성 및 실행 Spring Boot 프로젝트 생성먼저, Spring Boot 프로젝트를 생성전에 java를 설치해줘야한다. Spring initializr은 spring boot 프로젝트를 생성하는 웹 기반 도구이다. 해당 사이트 주소이다. https://start.spring.io/ 옛날에는 spring 프로젝트를 밑바닥부터 만들었지만, 현재는 spring boot로 프로젝트를 생성한다. 그리고 Spring Initiallizer로 프로젝트를 생성하면 해당 프로젝트에 gradle이 자동으로 설치되지만, 원래는 수동으로 해줘야했었다. Spring 프로젝트 생성시 필요한 초기 설정값 저장Project: 어떠한 빌드 시스템으로 프로젝트를 빌드할지 선택Spring Boot: Spring Boot Version(3.3.1).. [Gradle] Gradle 구성요소와 빌드 과정 먼저 Gradle 구성 요소와 빌드 과정을 보기전에, 이해하기 쉽도록 간략하게 일반적인 빌드 과정에 대해서 설명하였다.Build란?프로그래머가 작성한 소스코드를 실행 가능한 파일로 만드는 과정을 빌드(build)라고 한다. 프로그래머는 소스코드를 작성한다. 컴파일은 인간이 이해하기 쉬운 소스 코드를 컴퓨터와 가까운 코드(어셈블리어, 바이트 코드, 기계어)로 변환하는 단계이다. 빌드는 컴파일 단계를 포함하며, 이후 작성한 소스코드에 필요한 구성 요소(라이브러리나 리소스 파일 등)를 결합하여 실행 가능한 소프트웨어를 만들어내는 과정이다. 빌드까지 마쳤으면, 실행 가능한 파일이 생성되고 실행할 준비가 완료된것이다. 이후 해당 파일을 실행하면 메모리에 로드되고 작성된 프로그램이 프로세스가 된다. 그리고 배포(D.. [Java] CLI와 IntelliJ 소스코드 실행 비교 Java 소스코드를 작성하고 실행하기 위해서는 특정 경로에 컴파일된 클래스 파일을 저장하고, 클래스 파일을 올바르게 참조하여 실행하도록 클래스 경로(CLASSPATH)를 설정한다. 이 글에서는 CLI(Command Line Interface) 환경에서 소스코드를 컴파일하고 실행하는 방법과 IntelliJ IDEA와 같은 통합 개발 환경(IDE)에서 소스코드 실행 버튼만 누르면, 어떻게 자동으로 실행되는지에 대해 설명한다. CLI 소스코드 실행 환경 설정 및 실행소스코드 컴파일 후 특정 경로에 저장작성한 소스코드를 실행하기 위하여, 특정 디렉터리 경로에 컴파일한 클래스 파일(.class)로 저장해야한다.package com.shop.bookclass Test { public static void ma.. 이전 1 ··· 7 8 9 10 11 12 13 ··· 15 다음