BACK 95

[SpringBoot] Thymeleaf form 태그

타임리프를 처음 써보면서 잘 몰랐던 문법에 대해 정리해보고자 한다. form th:action 폼이 제출될 URL이나 경로를 지정하는 데 사용 ex) th:action="@{/fileBoard/insertProc}"는 폼 제출 대상을 /fileBoard/insertProc URL로 설정 th:object 폼이나 템플릿의 특정 부분과 객체를 연결하는 데 사용 폼의 데이터 모델로 사용할 객체를 지정 ex) th:object="${fileBoardVO}"는 fileBoardVO 객체를 폼과 연결하여 Thymeleaf가 폼 입력값을 fileBoardVO 객체의 해당 속성과 바인딩 th: field th:field 속성은 폼 필드를 특정 객체 속성에 바인딩하는 데 사용 주로 , , 와 같은 폼 입력 요소에서 사용..

BACK/SPRING 2023.06.09

[Spring] Servlet 동작 방식

서블릿이란? 서블릿이란 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술입니다. 서블릿 동작 방식 Spring MVC에서 Controller로 이용되며, 사용자의 요청을 받아 처리한 후에 결과를 반환합니다. 사용자가 url을 입력하면 http request가 servlet 컨테이너로 전송됩니다. servlet 컨테이너는 httpServletRequest, HttpServletReponse 객체를 생성합니다. web.xml 기반으로 사용자가 요청한 url이 어느 서블릿에 대한 요청인지 찾고, 해당 서블릿에서 service 메소드를 호출한 후 get, post 여부에 따라 doGet()이나 doPost()를 호출합니다. 메소드는 HttpSer..

BACK/SPRING 2023.05.23

[JAVA] String, StringBuilder, StringBuffer 차이

String String과 다른 클래스(StringBuffer, StringBuilder)의 차이점은 String은 불변(immutable) 하다는 점이다. String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않는다. ‘+’ 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후, 새 객체에 연결된 문자열을 저장하고 그 객체를 참조하도록 한다. 즉, 한번 생성된 객체의 내부 내용을 변화시킬 수 없다. String str = "hello"; // String str = new String("hello"); str = str + " world"; // [ h..

BACK/JAVA 2023.04.20

[JPA] Dirty Checking(변경 감지)

변경 감지란, 트랜잭션 커밋(종료)시 영속화된 엔티티에서 가지고 있었던 최초 정보(스냅샷)와 바뀐 엔티티 정보를 비교해서 바뀐 부분을 update해주는 기능이다. JPA에서는 엔티티를 조회하면 해당 엔티티의 조회 상태를 스냅샷을 만든다. (*스냅샷: DB에서 데이터를 가져와 영속성 컨텍스트에 저장해 엔티티를 영속화할 때의 최초 정보들) 트랜젝션이 끝나는 시점에 이 스냅샷과 비교해서 엔티티에 변경이 있으면 Update Query가 발생한다. Dirty Checking 대상은 영속성 컨텍스트가 관리하는 엔티티에만 적용된다. 준영속, 비영속 상태의 엔티티는 대상에 포함되지 않는다. ex) Detech된 엔티티(준영속), DB에 반영되기 전 처음 생성한 엔티티(비영속)

BACK/JPA 2023.04.11

[JAVA] 컬렉션 프레임워크 정리

컬렉션 프레임 워크란? 여러 개의 데이터 묶음 자료를 효과적으로 처리하기 위해 구조화된 클래스 또는 인터페이스의 모음 컬렉션의 특성에 따라 크게 List, Set, Map으로 나눌 수 있고 메모리의 입출력 특성에 따라 기존 컬렉션 기능을 확장한 Stack, Queue가 있다. Map의 경우 Collection 인터페이스를 상속받고 있지 않지만 Collection으로 분류된다. 1. List 컬렉션 인터페이스 배열과 반대로 저장 공간의 크기가 동적으로 변화(메모리 동적 할당) 데이터의 추가, 변경, 삭제 등 가능 내부에 이미 클래스가 구현되어 있어 직접 인터페이스를 구현할 필요가 없음 구현 클래스(ArrayList, Vector, LinkedList..)를 이용하면 List 객체 생성 가능 구현 클래스(자..

BACK/JAVA 2023.02.15

스프링MVC - 웹 애플리케이션의 이해

웹에서는 모든 것이 HTTP 기반으로 데이터를 주고받는다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 웹 서버(Web Server) HTTP 기반으로 동작하는 서버 정적 html파일을 HTTP 요청하면, HTTP 응답으로 반환해준다. 정적(파일) HTML, CSS, JS, 이미지, 영상등 ex) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 (정적 리소스 제공 가능) HTTP 요청이 오면 프로그램 코드를 실행해서 애플리케이션 로직 수행 사용자마다 다른 화면 제공 가능 동적 HTML, HTTP API(JSON) 제공 서..

BACK/SPRING 2023.02.12

Spring Boot Project(7) - 서비스 인증과 권한 부여

인증과 인가 등의 보안 기능을 추가하기 위해 스프링 시큐리티를 사용해보겠다. 인증 사용자가 누구인지 확인하는 단계 로그인 - 데이터베이스에 등록된 아이디와 패스워드를 사용자가 입력한 아이디와 비밀번호와 비교해서 일치여부를 확인한다. 로그인에 성공하면 서버는 응답으로 사용자에게 토큰을 전달한다. 인가 인증을 통해 검증된 사용자가 애플리케이션 내부의 리소스에 접근할 때 해당 리소스에 접근할 권리가 있는지 확인하는 과정 리소스 접근할 때 사용자가 전달한 토큰을 통해 권한 유무를 확인한다. 스프링 시큐리티 애플리케이션의 인증, 인가 등의 보안기능을 제공하는 스프링 하위 프로젝트 스프링 시큐리티는 서블릿 필터(servlet filter)를 기반으로 동작한다. DispatcherServlet 앞에는 필터가 배치되어..

BACK/SPRING 2023.01.31
반응형