본문 바로가기

728x90

STUDY

(27)
@Transactional에 대해서 @Transactional은 스프링으로 개발을 하게되면 Service Layer에서 붙이게 되는 어노테이션이다.스프링(Spring) 프레임워크에서 트랜잭션 관리를 위한 선언적 방식이다.메서드 레벨, 클래스 레벨에서 사용할 수 있으며, 해당 메서드 또는 클래스의 모든 public 메서드에 트랜잭션을 적용한다. @Transactional가 붙은 메서드를 실행할 때스프링은 트랜잭션을 시작하고, 메서드가 정상적으로 종료되면 트랜잭션을 commit한다.만약 예외가 발생하면 트랜잭션을 rollback한다(즉, 비정상적인 종료로 인해 rollback이 발생할 경우에는 트랜잭션의 일부 작업만 데이터베이스에 반영되는 것을 방지해 데이터 일관성을 유지한다)트랜잭션이란?하나의 논리적인 작업 단위ex) 하나의 트랜잭션은 여..
웹서버와 WAS 웹서버와 WAS의 동작 방식 (요청 → 응답 흐름)1. 요청(Request) 발생사용자가 브라우저 또는 앱에서 URL 입력, 버튼 클릭 등의 행동 → HTTP(S) 요청 발생요청에는 URL, 메서드(GET/POST 등), 헤더, 쿠키, 본문 데이터 등이 포함됨 2. 웹서버(Web Server) 처리예시: Nginx, Apache주 역할:정적 파일(HTML, CSS, JS, 이미지 등) 직접 응답SSL 종료(HTTPS 처리)리버스 프록시(백엔드 WAS로 전달)동작 흐름:요청 분석 (정적 리소스 여부 판단)정적 리소스 → 바로 응답동적 요청(API, DB 필요) → WAS로 전달 3. 웹 애플리케이션 서버(WAS) 처리예시: Tomcat, JBoss, Node.js, Spring Boot 내장 서버주 역할:..
VO, DTO, DAO 값(데이터)을 주고받는 방법에는 VO, DTO, DAO가 있습니다. VOVO는 Value Object로써,DTO와 유사하다고 할 수 있습니다.그러나 DTO와 다른 점은 Read-Only 특징(getter만 가능하다)입니다.VO는 값의 수정이 불가능합니다. DTODTO는 Data Transfer Object로써,계층( Controller, Service, 등)간 데이터를 이동할 때 사용되는 객체입니다.로직을 갖고 있지 않는 순수한 데이터 객체이며, getter/setter 메서드만을 갖습니다.DAO DAO는 Data Access Object로써,데이터베이스와 가장 가까운 객체라고 할 수 있습니다.데이터베이스에서 값을 CRUD할때 이용되는 객체입니다.
스프링이란 스프링의 종류스프링 프레임워크 - 스프링의 가장 핵심 스프링 부트 - 여러가지 스프링 기술들을 편리하게 사용할 수 있게 도와주는 것스프링 데이터 - CRUD를 좀 더 편리하게 사용할 수 있게 도와주는 것스프링 세션 - 세션 기능을 편리하게 사용할 수 있도록 해주는 것스프링 시큐리티 - 보안과 관련된 것스프링 Rest Docs - API 문서와 테스트를 엮어 문서화를 편하게 해주는 것스프링 Batch - 대량의 데이터 업데이트를 처리하는 것에 도움을 주는 것스프링 클라우드 - 클라우드 기술에 특화된 기술등등이 존재한다. 보통 스프링 부트를 많이 사용한다. 스프링 부트는 스프링을 편리하게 사용할 수 있도록 도와주는 기술이다.스프링 부트가 외부 라이브러리 버전 등이나 설정 같은 것을 알아서 맞춰서 설정해준다...
스프링 시작하기 현재 IDE로는 sts 이클립스를 사용하고 있다.sts내부에서 스프링 부트를 사용해서 프로젝트를 생성할 수 있다.https://start.spring.io/ 위의 사이트 형식 그대로 sts에서 사용할 수 있도록 되어있다.    가장 처음에는 프로젝트 이름과 패키지명을 정하고, 빌드 타입(maven, gradle), 패키징(jar, war), java버전, 언어(java,kotlin,groovy)를 선택한다.다음으로 어떤 라이브러리를 포함할지 선택한다.여기서 선택하지 않아도 추후에 추가가 가능하다.finish를 누르면 프로젝트가 생성된다.프로젝트이름Application.java 파일을 spring boot app으로 실행시키면 서버가 구동된다. 로컬일경우 localhost:8080으로 접속하면 아래의 페이..
css기초연습 CSS를 사용하는 방법 3가지 태그의 라인 안(inline)으로 style 속성을 이용하는 방법 style 태그에 선택자(태그이름(유사 태그), id속성(#) - 단일태그 , class속성(.) - 그룹 , 조합)를 이용하는 방법 외부 css파일을 link태그를 이용하는 방법 Ex) CDN mycss.css @charset "UTF-8"; .e { color: purple; } 안녕하세요 hello 스프링 파이썬 홍길동 자바 HTML 헬로 클릭 또는 행동 :active - 마우스를 클릭한 태그 :hover - 마우스가 올려진 태그 :link - 링크된 텍스트 :visit - 한번 이상 클릭된 링크 개발자 jjdev jjdev 자바 html css 단위별 #pt {font-size : 30pt; color..
20240313 달력(전체) 이전에 만들었던 달력(3월)을 업그레이드 했다. 이전달과 다음달을 누르면 해당 월의 달력이 나오도록하기 위해 targetYear targetMonth를 String으로 선언하고 request.getParameter()로 받아 올 수 있도록 한다. targetYear와 targetMonth가 null일때는 오늘 날짜(해당 월)의 달력을 출력하도록 한다. calendarVer3.jsp 2024/3/1변경 } else { firstDate.set(Calendar.YEAR, Integer.parseInt(targetYear)); firstDate.set(Calendar.MONTH, Integer.parseInt(targetMonth)); firstDate.set(Calendar.DATE, 1); } // 3) ..
20240313 값을 넘기는 3가지 방법 페이지에서 다른 페이지로 값을 넘기는 방법이 3가지가 있다. 웹 브라우저의 주소창을 이용하는 방식(GET 방식) 태그를 이용하는 방식(GET 방식) 태그의 action 속성을 이용(GET / POST 방식) requestPage.jsp requestPage 1. 웹브라우저 주소창을 이용(GET 방식) 태그 이용(GET 방식) 페이지 요청 3. 태그의 action 속성을 이용(GET / POST) FORM GET방식 x는 hidden y: 전송 FORM POST방식 z: 전송 response.jsp responsePage x: y: z:

728x90