스타필드 도서관 웹 애플리케이션의 프로젝트 구조와 전체 코드이다. 코드뿐만 아니라 구현 과정 및 구현에 사용된 기술에 대한 설명을 덧붙였다. 2024.03.06 - [Programming/Spring] - [Spring Boot] 스타필드 도서관 웹 애플리케이션 개발과 배포: Spring Boot에서 MyBatis와 JPA 동시 사용하기 [Spring Boot] 스타필드 도서관 웹 애플리케이션 개발과 배포: Spring Boot에서 MyBatis와 JPA 동시 사용하 MyBatis와 JPA를 동시 사용해서 수원 스타필드 별마당 도서관 도서 관리 시스템 CRUD(Create, Read, Update, Delete)를 구현해 보도록 하자. 이렇게 만든 웹 애플리케이션의 배포까지 진행하면서 Spring MVC..
MyBatis와 JPA를 동시 사용해서 수원 스타필드 별마당 도서관 도서 관리 시스템 CRUD(Create, Read, Update, Delete)를 구현해 보도록 하자. 이렇게 만든 웹 애플리케이션의 배포까지 진행하면서 Spring MVC Pattern을 학습하는 것을 목표로 한다. 이 연습 프로젝트는 실제 스타필드 도서관 웹 애플리케이션은 아니지만, JPA를 활용하여 데이터베이스에서 책과 저자에 대한 CRUD 기능을 구현하였다. 💡JPA JPA(Java Persistence API)는 자바의 ORM(Object-Relational Mapping) 기술을 쉽게 구현하도록 도와주는 API이다. ORM은 객체와 관계형 데이터베이스 간의 매핑을 단순화하여 개발자가 객체 지향 프로그래밍 언어로 데이터베이스를 ..
JPA(Java Persistence API)는 자바의 ORM(Object-Relational Mapping) 기술을 쉽게 구현하도록 도와주는 API이다. JpaRepository를 상속하는 인터페이스에 메서드 이름만 작성하면, JPA가 구현체를 생성하고 필요한 쿼리문을 자동으로 처리한다. 따라서 개발자는 SQL을 작성할 필요 없이 간단한 메서드 명칭만으로도 데이터베이스를 조작할 수 있다. JPA는 엔티티(Entity)라는 클래스를 이용하여 객체를 데이터베이스에 매핑한다. 엔티티는 개발자에게 테이블 또는 레코드와 유사한 개념이다. 객체를 이용하여 매핑을 처리하므로, 개발자는 객체지향적인 코드를 작성할 수 있다. JPA를 사용하면 CRUD(Create, Read, Update, Delete) 작업을 간편하..
WAR 파일은 Java 웹 애플리케이션을 배포하기 위해 사용되는 형식으로, JSP나 Servlet과 같은 웹 애플리케이션 컴포넌트들이 WAS(Web Application Server) 컨테이너 위에서 실행될 수 있도록 미리 빌드된 형태이다. WAR 파일은 WAS가 실행되는 시점에 웹 어플리케이션 설정과 리소스를 로드하며, War 파일을 실행하기 위해서는 별도의 웹 서버나 WAS가 필요하다는 특징이 있다. Spring으로 개발된 웹 애플리케이션을 WAR 파일로 빌드하고, AWS와 MobaXterm을 활용하여 Tomcat에 배포하는 방법을 살펴보도록 하자! 프로젝트 목표 Spring Legacy Project(Legacy Java) 구조를 학습한다. Spring 웹 애플리케이션을 War 파일로 빌드하는 과정..
웹 브라우저를 실행하면 한 번에 여러 웹 페이지를 로드하고 사용자의 입력을 처리한다. 이러한 복잡한 작업을 가능하게 하는 것이 프로세스와 스레드이다. 프로세스와 스레드를 이해하고 구현함으로써 운영체제의 동작 원리를 이해하고, 효율적인 프로그램을 개발할 수 있다. 또한, 교착상태(프로세스나 스레드가 서로 필요한 자원을 점유하고 있어서 더 이상 진행할 수 없는 상태)와 같은 문제를 해결하기 위한 다양한 동기화 기법을 이해할 수 있다. 프로세스와 스레드 요약 프로세스(Process) 스레드(Thread) 운영체제로부터 자원을 할당받은 작업의 단위 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 프로세스는 각각 독립된 메모리 공간을 가지며 실행되는 프로그램의 인스턴스이며, 스레드는 프로세스 내에서 실행되는..
JUnit은 자바 프로그래밍에서 테스트를 수행하는 데 널리 사용되는 프레임워크 중 하나이다. JUnit을 사용하면 단위 테스트를 작성하고 실행하여 소스 코드 모듈이 의도한 대로 작동하는지 확인할 수 있다. 특히, JUnit 5에서는 모듈화된 구조로 테스트 작성 및 실행을 지원하여 개발자가 효율적으로 테스트할 수 있다. 소프트웨어 시스템의 여러 구성 요소가 함께 작동하여 예상대로 작동하는지 확인하는 것은 통합 테스트에 있어 중요한 단계이다. 이를 위해 Spring Boot는 MockMvc와 Mockito 같은 테스트 프레임워크를 제공하여 웹 애플리케이션을 테스트하고 의존성이 있는 객체를 가짜 객체로 대체하여 테스트를 수행할 수 있다. JUnit과 Mockito를 활용하여 테스트를 하면서 프로젝트 설정 오류..
Naver Search API와 Kakao Map API를 활용하여 특정 키워드로 검색한 장소 검색 결과를 지도에 표시하는 기능을 구현해 보도록 하자. 먼저 네이버 API 이용신청 하는 과정이 필요하다. 그리고 Spring Initializr를 이용하여 Spring Boot로 Demo 프로젝트를 생성하여 코드를 작성하는 과정으로 넘어간다. 💡Naver Application https://developers.naver.com/main/ NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음 developers.naver.com ..
사용자에게 여러 가지 선택지를 제시하고, 그 중에서 선호하는 것을 선택하여 대결을 진행하는 웹 기반 이상형 월드컵을 만들어 보도록 하자. 이상형 월드컵을 사용자가 진행할 때 하나의 페이지에서 화면이 바뀌면서 진행되어야 하므로 데이터를 유지하기 위해 세션 객체를 사용해 보려고 한다. Spring 프로젝트에서 사용자가 선택한 이상형 월드컵 결과를 저장하고 관리하는 시스템을 구현하면서 코드를 검토하고 각 계층에서 사용한 기술을 점검해 보려고 한다. 💡Spring Framework Spring Framework는 자바 기반의 엔터프라이즈 응용 프로그램을 개발하기 위한 전체적인 인프라를 제공하는 경량 프레임워크로, 의존성 주입(Dependency Injection)과 관점 지향 프로그래밍(Aspect-Orient..