본문 바로가기

코딩도전기/Spring11

Spring 교육 web.xml에 spring 설정 추가하여 spring 구조로 실행 spring 주요 디자인 패턴 Front Controller Pattern - 사용자 요청이 들어왔을 때 하나의 컨트롤러가 관문역할을 하고 해당 요청을 처리할 수 있는 서블릿이나 페이지로 분배하는 패턴 - 요청 처리의 일관성과 효율성을 높임 Transfer Object Pattern - 데이터를 한 객체에서 다른 객체로 전송하는 데 사용 - 데이터베이스와 같은 소스로부터 데이터를 검색하고 전달하는 데 활용 Data Access Object Pattern - 비즈니스 로직과 DB 분리 - DB 사용 방식이 달라져도 서비스 로직이 변경되지 않도록 DB 로직을 캡슐화하여 분리 Session Facade Pattern - 다양한 서브 클래스들을.. 2024. 1. 18.
Transaction Transaction 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 트랜잭션이 일어난 후에는 commit을 통해 변화를 반영하거나 rollback이 이루어진다. 트랜잭션의 특징 4가지 특징 Atomicity, Consistency, Isolation, Durability의 앞글자를 따서 ACID라고 부른다. 원자성 ( Atomicity ) 하나의 트랜잭션이 작업이 그중에 일부분만 실행되거나 중단되지 않는 것을 보장해주는 것 All or Noting, 하나의 트랜잭션 즉 작업단위에 대해서 전체 성공 혹은 전체 실패만을 보장하며 데이터베이스의 부분적인 갱신으로 더 큰 문제가 야기되는 것을 방지한다. 일관성 ( Consistency ) 작업이 성공적으로 완료가 되더라도 작업 이전과 같은 일관성 있.. 2023. 12. 30.
AOP - Proxy Pattern AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 여러 메서드에 중복되어 나타나지만 핵심로직이라고 할 수 없는 부가 기능을 cross-cutting concerns(횡단관심사, 흩어진관심사) 로 보고 이를 모듈화하는 것 프록시패턴(Proxy Pattern) 프록시(Proxy)를 번역하면 대리자, 대변인의 의미를 갖고 있다. 대리자, 대변인은 누군가를 대신해서 그 역할을 수행하는 존재이다. 이는 프로그램에도 똑같이 적용된다. 즉, 프록시에게 어떤 일을 대신 시키는 것이다. 어떤 객체를 사용하고자 할때, 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대항하는 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설.. 2023. 12. 30.
CODO Day46_Spring(Paging) Paging 리스트의 수가 많아졌을 때 리스트를 한번에 보여줄 경우 데이터 양이 많아져 효율이 떨어짐 이 경우 특정 개수만큼 페이지를 나누어 보여줄 수 있음 Paging 처리된 게시판 만들기 list.jsp 게시물 갯수 : 5 10 15 20 번호 제목 작성자 작성일 조회 jquery.twbsPagination.js paging을 하기 위한 js 설정 BoardController package kr.co.gudi.controller; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import .. 2023. 4. 7.
CODO Day45_Spring(AJAX) AJAX(Asynchronous JavaScript And Xml) 비동기로 통신하는 JavaScript(JSON)와 xml 동기화 : 요청한 후 응답이 올 때 까지 다른 작업 불가능 ex) 웨이팅 비동기화: 요청 후 응답이 올 때 까지 다른 작업 가능 ex) 테이블링 서비스 요청을 받아서 전달하고 요청이 처리되면 응답을 날려주는 존재가 있음 # 보안이 필요한 것들은 ajax 사용 지양 ajax 메소드 - $.ajax({}); {} : object 객체 넣을때 사용(key,value) $.ajax({ type:"get", 전송 방식을 GET 으로 지정. [POST | GET] url:”http://localhost:8080/api”, 요청을 전송 할 url 주소 data:{ q:qry, result:10.. 2023. 4. 5.
CODO Day44_Spring(PhotoBoard) 에러 페이지 띄우기 설정 web.xml # servlet-context.xml 파일 위치 변경해줌 >> web.xml에서 경로 변경해주어야함 error.jsp ERROR CODE : ${code} ${msg} Controller package kr.co.gudi.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ErrorCo.. 2023. 4. 4.
CODO Day43_Spring(FileService) Spring 파일 업로드 설정 Servers > Tomcat > Server.xml pom.xml root-context.xml JSP index.jsp 파일 리스트 보기 단일 파일 업로드 멀티 파일 업로드 list.jsp 다운로드 업로드된 사진이 없습니다. 삭제 Controller package kr.co.gudi.controller; import java.util.ArrayList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.. 2023. 4. 3.
CODO Day42_Spring(BoardApp) BoardController package kr.co.gudi.board.controller; import java.util.ArrayList; import java.util.HashMap; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotatio.. 2023. 3. 31.
CODO Day41_Spring(MemberApp) pom.xml(변경) # AspectJ 위에 필요한 라이브러리 추가 web.xml(추가) encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* servlet-context.xml(추가 - 맨 아래 쪽(beans 닫기 전)) login.jsp ID PW joinForm.jsp ID PW NAME AGE GENDER 남자 여자 E-MAIL main.jsp ID NAME EMAIL 상세보기 삭제 ${member.id} ${member.name} ${member.email} 상세보기 삭제 loginBox.jsp detail.jsp ID PW NAME.. 2023. 3. 30.