본문 바로가기

Programming/Spring

(9)
Spring Boot와 기존 Spring의 차이점 Spring Framework는 Java 개발자들 사이에서 가장 인기 있는 오픈소스 애플리케이션 프레임워크 중 하나로, 다양한 구성 요소와 강력한 유연성을 제공합니다. 그러나 Spring을 사용하여 애플리케이션을 구축하려면 많은 설정 작업이 필요했으며, 이로 인해 개발자가 설정과 관련된 문제에 집중하기보다는 비즈니스 로직에 집중할 수 없다는 단점이 있었습니다. 이러한 문제를 해결하기 위해 등장한 것이 Spring Boot입니다.Spring Boot는 기존의 Spring Framework를 기반으로 하지만, 설정과 구성의 복잡성을 크게 줄이고, 개발자가 더 쉽게 애플리케이션을 개발할 수 있도록 돕는 도구입니다. 이 포스트에서는 Spring Boot와 기존 Spring의 차이점을 다뤄보겠습니다.1. 설정의 ..
Spring @Transactional : 원리부터 실전 주의사항까지 Spring에서 @Transactional은 가장 많이 쓰이면서도 가장 자주 오용되는 기능 중 하나다.겉으로는 단순해 보이지만, 내부 동작을 잘 모르고 쓰면 트랜잭션이 아예 시작되지 않거나, 롤백되지 않거나, 데이터 불일치 문제가 생길 수 있다.이 글에서는 단순 개념이 아니라 실제로 개발하다가 부딪히는 문제들을 기준으로 @Transactional을 깊이 있게 정리해본다.1. @Transactional이 작동하는 원리핵심은 프록시와 AOPSpring에서 @Transactional은 프록시 기반 AOP를 사용해 트랜잭션을 관리한다.즉, 트랜잭션을 시작하거나 커밋/롤백하는 실제 코드는 프록시 객체에 의해 실행된다.기본 흐름은 다음과 같다:Bean 등록 시 Spring이 트랜잭션 어노테이션이 붙은 클래스를 프록..
Spring Bean 생명주기와 스코프 정리 Spring에서 Bean은 객체를 자동으로 생성하고 관리하는 단위다. 이 Bean이 생성되고 사용되며 종료되는 전 과정이 생명주기이고, Bean이 어떤 범위로 관리되는지가 스코프다.1. Bean 생명주기Bean은 아래와 같은 순서를 따라 생성되고 제거된다.생명주기 단계객체 생성Spring 컨테이너가 Bean 정의를 기반으로 객체를 생성한다.의존성 주입생성된 객체에 필요한 의존성이 주입된다.초기화 콜백@PostConstruct 또는 InitializingBean.afterPropertiesSet()을 통해 초기화 작업 수행.사용컨테이너가 Bean을 필요에 따라 사용한다.소멸 콜백@PreDestroy 또는 DisposableBean.destroy() 호출로 정리 작업 수행. 예제@Componentpubli..
스프링으로 웹페이지 만들기 - 6. 카카오오븐 사용하여 UI UX 정의하기 - 부트스트랩 무료 템플릿 사용하기 (이전 포스팅 참고) https://biesil.tistory.com/9 스프링으로 웹페이지 만들기 - 5. 부트스트랩 무료템플릿 사용하기 이번 포스팅엔 나의 허접한 UI를 아름답게 바꿔줄 부트스트랩 템플릿을 사용할 예정이다. 여기서 부트스트랩이란? 프론트엔드 영역의 웹개발을 빠르고 쉽게 만들어 주기 위한 템플릿 오픈소스 biesil.tistory.com 저번 포스팅에선 부트스트랩 무료 템플릿을 내 프로젝트에 적용하였다. 마냥 템플릿을 그대로 사용하기엔 방향성이 잘 잡히지 않아 UI/UX 에 대한 정의를 카카오오븐을 통해 구성하겠다. -카카오오븐이란? 카카오에서 제공하는 연구실 프로젝트라고 Oven에서 정의하며, HTML5 기반 무료 웹/앱 프로토타이핑 툴이라고 한다...
스프링으로 웹페이지 만들기 - 5. 부트스트랩 무료템플릿 사용하기 이번 포스팅엔 나의 허접한 UI를 아름답게 바꿔줄 부트스트랩 템플릿을 사용할 예정이다. 여기서 부트스트랩이란? 프론트엔드 영역의 웹개발을 빠르고 쉽게 만들어 주기 위한 템플릿 오픈소스이며, 간단하게 템플릿을 다운받아 자신의 프로젝트에 넣어주면 적용되는 나같은 백엔드 개발자에게 아주 고마운 오픈소스 플랫폼이다. 아래 URL로 들어가보면 https://startbootstrap.com/ Free Bootstrap Themes, Templates, Snippets, and Guides - Start Bootstrap Landing Page A clean, functional landing page theme startbootstrap.com - Start Bootstrap 화면 이렇게나 많은 템플릿을 제공한다..
스프링으로 웹페이지 만들기 - 4. 데이터 주고 받기 내 블로그 ORACLE 카테고리에 로또 번호 추출 쿼리를 포스팅하였다. 그 쿼리를 기반으로 프로젝트에 사용하도록 해보겠다. https://biesil.tistory.com/entry/ORACLE-%EB%A1%9C%EB%98%90-%EB%B2%88%ED%98%B8-%EC%B6%94%EC%B6%9C%ED%95%98%EA%B8%B0-%EB%A1%9C%EB%98%90-SQL?category=705523 ORACLE 로또 번호 추출하기 - 로또 SQL - 로또 쿼리 구성 로또 쿼리를 어떻게 만들까 하다가... 구글링 하여 찾아봤다. https://mentor75.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%EB%A1%9C%EB%98%90-%EC%B6%94%EC%B6%9C-%..
스프링으로 웹페이지 만들기 - 3. DB연동 1. ORACLE DB설치 오늘은 오라클 DB연동 및 SQL 디벨로퍼 세팅 등 간단하게 DB 연동 작업을 할 예정이다. 먼저 아래 URL에서 오라클 19c 버전 부터 받도록 하자. https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 2. SQL Developer 설치 설치 완료 후 SQL Developer 를 다운 받는다. https://www.oracle.com/tools/downloads/sqldev-downloads.html 이렇게 설치가 완료된 후 2가지 파일을 수정 해줘야한다. C\app\OOOO\ 해당 경로에서 파일을 검색한다. 3. .ora 파일 수정 - tnsnames.ora XE = (DE..
스프링으로 웹페이지 만들기 - 2. Spring MVC Project 생성 1. 폴더 및 패키지 정리 이전 시간에는 스프링 프로젝트 생성까지 하였고, 톰캣서버 연결을 통해 연결이 잘 된걸 확인하였다. 이번엔 패키지, 폴더, JSP 구성까지 하겠다. - 폴더 생성 lotto 패키지 하위 폴더로 controller, service, dao, model 폴더를 만들어 준다. - Controller 생성 controller 폴더에 BoardController.java 를 생성해준다. 차후 프로젝트 화면별로 많이 분기가 되었을 때 클래스명 변경을 고려해봐야겠다. 일단 무난한 Board 의 이름으로 생성! "board" 의 url 로 호출 했을 시 처리하기 위하여 기본 코딩을 구성한다. - View 생성 view 하위폴더에 마찬가지로 lotto 폴더를 생성 후 board.jsp 를 생성한..

반응형