organize/스프링 22

스프링 웹 프로젝트 5

Controller서블릿에서 시작 → Spring MVC는 서블릿에서부터 시작 → 기본적으로 서블릿에 대한 이해가 필요함서블릿에서 HttpServletRequest, HttpServletResponse를 사용했지만Spring MVC에서는 사용할 필요가 없음 이유는 HttpServletRequest, HttpServletResponse는 파라미터를 수집하려고 사용하는데 Spring MVC에서는 자동으로 파라미터를 수집하는 기능을 처리해줌 + 리턴 타입※ 이러한 Spring MVC를 이용하면 자바에서 배운 상속이나 인터페이스 등의 문법에 갇혀 있지 않을 수 있게 함 어노테이션@Controller : 해당 클래스의 인스턴스를 스프링의 빈으로 등록하고 컨트롤러로 사용componet-scan과 같이 활용@Requ..

organize/스프링 2024.12.31

스프링 웹 프로젝트 4

MVC(Model-View-Controller)대부분의 서블릿 기반 프레임워크들이 사용하는 방식데이터와  처리, 화면을 분리하는 방식웹에서는 Model 2 방식으로 표현※ Model 2 : 왜 Controller를 따로 분리했을까?, 유지보수가 좋다는 이유는?Controller : URL 처리, 화면과 로직 분리 ※ 서블릿(모델2)과 스프링 MVC Cotroller서블릿스프링 MVC Controller클래스에서 URL 분기클래스 혹은 메서드에서 가능GET/POST는 메서드 선택과 오버라이드@GetMapping/@PostMapping고정된 파라미터와 리턴 타입파라미터의 자동 수집(상속이 아님)상황에 따른 반환 타입 조정수동으로 직접 forward자동으로 forward 처리의존성 주입 불가스프링을 통해 다른..

organize/스프링 2024.12.30

스프링 웹 프로젝트 3

MyBatis와 스프링 연동 연동에 앞서 MyBatis란?SQL Mapping 프레임 워크SQL과 Object 간의 관계를 매핑해주는 역할JDBC 코드에 비해 처리하는 부분이 간결해지고, close 처리를 지원※ JPA와는 다름. JPA(RDBMS -> 객체지향에 접목). MyBatis는 SQL, 객체지향 매핑하는 역할Spring에서의 사용스프링은 MyBatis와의 연결을 위한 mybatis-spring 라이브러리를 이용해서 연동 처리 MyBatis 세팅기본적으로 dataSource 설정 필요pom.xml 라이브러리 추가 org.mybatis mybatis 3.5.6위의 라이브러리만 추가해도 개발이 가능하지만, 스프링과 연동하면 더 좋아짐. MyBatis Spring 라이브러리도 추가 ..

organize/스프링 2024.12.29

스프링 웹 프로젝트 2

Oracle 11g Express Edition 설치 및 설정 설치에 앞서 왜 Oracle 11g인가?, 최신 버전의 Oracle은 안되는가? 라는 질문이 있을 수 있는데이 질문에 답은 최신 버전일수록 용량이 크고 메모리를 많이 차지함으로서 프로그램이 무겁다기 때문이다.https://www.oracle.com/database/technologies/xe-prior-release-downloads.html이 곳에서 다운 받을 수 있다. Oracle Database를 설치하면서 가장 주의해야하는 부분은1. 설치 폴더 한국어가 있을 경우 문제가 발생2. System, SYS 계정의 패스워드를 지정하게 되는데, 이 패스워드는 매우매우 중요하기 때문에 반드시 기억해둬야함!3. 설치 중 포트 번호(톰캣이 8080 ..

organize/스프링 2024.12.28

스프링 웹 프로젝트 1

프로젝트에서 패키지명을 대문자로 작성하면 안됨. 그 이유로는자바의 공식 네이밍 규약자바의 패키지명은 반드시 소문자로 작성해야함운영 체제에서의 문제일부 운영 체제에서는 파일 시스템이 대소문자를 구분(리눅스나 맥OS는 대소문자를 구분하지만, 윈도우는 대소문자를 구분하지 않음)패키지명을 대문자로 시작하면 프로젝트가 다양한 운영 체제에서 실행될 때 호환성 문제가 발생할 수 있음. 이로 인해 애플리케이션의 배포 및 실행에 문제가 발생할 가능성이 커짐URL 경로에서 대소문자 구분 문제자바 클래스명과 패키지명 구분호환성 및 표준화lombok 프로젝트를 실행하면 home.jsp가 켜지면서 Console에는 다양한 로그 정보가 찍힘.여기서 HomeController에 현재 객체를 참조하는 키워드인 this를 찍어내면?t..

organize/스프링 2024.12.27

웹 시큐리티

프로젝트에서 스프링 웹 시큐리티를 이용해 암호화를 적용해 본 적이 있다. 스프링 웹 시큐리티자바 기반의 스프링 애플리케이션에서 보안을 강화하기 위한 것이다.주요 기능으로는 인증, 인가, CSRF보호, 세션 관리, 비밀번호 암호화 등이 있다.주요 개념으로는 SecurityFilterChain, AuthenticationManager, UserDetailsService, GrantedAuthority가 있다. 주요 기능인증(Authentication)사용자 인증을 통해 애플리케이션에 접근할 수 있는 사용자를 확인다양한 인증 방식을 지원인가(Authorization)인증된 사용자가 특정 자원에 접근할 수 있는지를 결정역할 기반 접근 제어 및 권한 기반 접근 제어를 지원CSRF 보호크로스 사이트 요청 위조 공격..

organize/스프링 2024.10.05

프레임워크, Spring과 Spring Boot

프레임워크 "프레임워크가 무엇인가요?"라고 물어본다면 "애플리케이션을 만드는 데 기본적인 골격을 제공하는 소프트웨어"라고 대답할 것 같다. 정보처리기사에서 프레임워크라는 용어가 나오기 때문에 이렇게 외운 적 있다. 뭔가 부족한 답변인 것도 안다. 그렇다면 프레임워크란 무엇인지에 대해 정리해 보도록 하겠다.  프레임워크는 소프트웨어 개발을 위한 일종의 틀이나 구조로, 특정한 문제를 해결하기 위해 미리 설계된 클래스와 라이브러리의 집합이다. 개발자는 이 틀을 기반으로 애플리케이션을 개발하면서 일관성과 생산성을 높일 수 있다. 프레임워크의 특징으로는 재사용성, 구조 제공, 기능의 확장성이 있다.재사용성 : 이미 정의된 코드를 재사용하여 개발 시간을 단축구조 제공 : 일관된 코드 작성을 위해 규칙과 구조를 제공..

organize/스프링 2024.10.04

redirect, redirect와 RequestDispatcher

redirectredirect가 붙고 안 붙고의 차이에 대해서 알아보고자 한다. @GetMapping("/insert") public String insert() { System.out.println("BoardController insert()"); return "board/insert"; } @PostMapping("/insertPro") public String insertPro(BoardDTO boardDTO) { System.out.println("BoardController insertPro()"); boardService.insert(boardDTO); return "redirect:/board/list"; } 그냥 게시판을 만들 때 리턴값을 redirect를 붙이고 안 붙이고..

organize/스프링 2024.10.03

페이지 처리

페이지 처리 또는 페이징 처리와 검색※페이징 처리 기법 X page에 필요한 객체 → pageDTO접근 제어자를 private를 해줌으로써 객체에 직접적으로 접근하지 못하게 함. lombok을 사용하면 어노테이션을 이용해서 getter/setter, 생성자를 작성 안해줘도 된다고 하지만, lombok을 제대로 사용해본적이 없으므로public class PageDTO { private int pageSize; //글의 개수 private int currentPage; //현재 페이지 private String pageNum; private int startRow; //시작하는 행 번호 private int endRow; //끝나는 행 번호 private int pageBlock; //한 화면에 보여줄 ..

organize/스프링 2024.10.02

스프링 프로젝트 정리 1

DAO(Data Access Object)데이터베이스에 접근하는 역할을 하는 객체데이터의 CRUD 작업을 시행하는 클래스데이터베이스 작업 예시1)package com.mystroy001.dao;import javax.inject.Inject;import javax.sql.DataSource;import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;import com.mystroy001.domain.MemberDTO;public class MemberDAO {//DB 작업 //멤버변수 정의 javax.sql.DataSource// private DataSource dataSource; //스프링에서 디비연결 정보를 받아서 sql 문을 실행하는 프로..

organize/스프링 2024.09.18
728x90