javaboiii의 Spring 16

Spring - 용어 정리 (파싱, 바인딩, 직렬화, 역직렬화, 맵핑)

Spring파싱 (Parsing)파싱은 텍스트나 문자열을 의미 있는 구조로 분석하는 과정예를 들어, 문법적으로 정확한 형태로 분해 해구조체나 트리와 같은 형태로 데이터를 변환하는 작파싱은 주로 텍스트 데이터를 컴퓨터가 이해할 수 있는 구조로 변환하는 데 사용됨EX)JSON 문자열을 객체로 변환하는 과정 등바인딩 ( Binding)바인딩은 프로그램에서 변수, 함수, 객체 등을 실제 값이나 메모리 주소와 연결하는 과정즉, 변수가 값이나 객체를 참조하도록 설정하는 것바인딩은 컴파일 시 또는 메서드 호출 시에 이루어짐특히 객체 지향 프로그래밍에서 중요한 개념EX)변수와 값 간의 연결함수 호출과 함수 구현이 연결되는 과정 등직렬화 (Serialization)직렬화는 객체나 데이터를 특정 형식(주로 텍스트나 바이너..

javaboiii의 Spring 2024.11.13

Spring - 성능 개선(MyBatis맛)

Spring마이바티스(MyBatis)는 XML이나 Annotation을 통해 SQL문을 작성하고객체들을 연결시키는 프레임워크임 XML 방식은 SQL매퍼를 XML파일에 작성하며 , 등의 요소로 작성함어노테이션 방식은 @Select와 같은 자바 어노테이션을 활용해 SQL 매퍼를 작성함 MyBatis의 장점자바 코드가 짧아짐 >> 가독성이 좋음SQL 구문을 전부 .xml로 분리해서 관리    >> 결합도가 낮아짐    >> 응집도 높아짐    >> 유지보수 용이SQL 구문에 변경사항이 발생했을 때 과거에는 .java가 변경 -> 재컴파일지금은 xml이 변경됨 -> 컴파일 xxx MyBatis의 단점복잡한 매핑    개발자가 직접 객체와 관계 매핑을 처리해야됨반복적인 코드    CRUD 작업을 자주 수행 시, ..

javaboiii의 Spring 2024.11.04

Spring - 트랜잭션

Spring트랜잭션의 정의트랜잭션은 데이터베이스에서 수행되는 작업의 단위로, 하나의 기능이나 작업을 의미함일반적으로 하나의 트랜잭션은 여러 개의 작업으로 구성될 수 있지만모든 작업이 성공적으로 완료되어야 트랜잭션이 성공으로 간주됨만약 하나의 작업이라도 실패하면 전체 트랜잭션은 롤백 롤백하나의 서비스가 제대로 처리되지 않았을 때서비스의 처음 상태로   되돌아 가는 것 롤백은 시스템의 안정성을 보장하고 데이터 무결성을 유지하는 데 필수적임예를 들어 위의 예시에서 쿠키 구매에 오류가 발생하면 지불된 1000원을 환불하고쿠키 수를 원래대로 되돌리는 방식으로 롤백  트랜잭션 예시  1000원 지불: 사용자의 지불 정보 처리쿠키 10개 구매: 사용자의 쿠키 수 증가웹툰 1화 미리보기 설정: 사용자의 웹툰 미리보기 ..

javaboiii의 Spring 2024.10.17

Spring - AOP 관점 지향 프로그래밍

SpringAOP( Aspect Oriented Programming)(관점 == 기능)AOP는 "관점 지향 프로그래밍"으로 프로그램의 공통적인 관심사를 분리해 모듈화하는 방법론임AOP를 통해 코드의 재사용성을 높이고 유지보수를 용이하게 할 수 있음 핵심 기능핵심 관심사 (Core Concerns)비즈니스 로직, CRUD 메서드 등 애플리케이션의 주된 기능을 의미공통 관심사 (Cross-Cutting Concerns)로그, 인증, 유효성 검사 등 여러 모듈에 걸쳐 반복적으로 사용되는 기능이러한 공통 기능은 코드 중복을 초래하고 유지보수를 어렵게 함 AOP의 구성 요소Advice (어드바이스) - 공통 로직으로, 특정 Joinpoint에서 실행될 코드 Pointcut (포인트컷) - 어떤 Joinpoint..

javaboiii의 Spring 2024.10.15

Spring - 비동기 처리

Spring스프링은 서블릿(not POJO)를 사용하지 않고비동기 처리를 할 수 있음 ViewResolver가 동작할 타이밍redirect:이 없으니까./true.jsp 응답할 수 있음 ViewResolver의 개입을 막는 방법메서드 시그니처에 @ResponseBody 추가class에 @RestController 추가@RestController는  부트에서 만들어짐text 반환@RequestMapping(value="/checkMID.do", method=RequestMethod.POST)public @ResponseBody String checkMID(MemberDTO memberDTO) { System.out.println("CheckController.java checkMID() POST 시작..

javaboiii의 Spring 2024.10.14

Spring - 성능개선(Controller맛)

Spring메서드 오버로딩을 통한 요청 줄이기 요청 URL 예시: mypage.do, my.do, mypagePage.doGET 요청: 페이지 이동POST 요청: 마이페이지 내용 업데이트@RequestMapping(value="/insertBoard.do", method=RequestMethod.GET)public String insertBoard() { return "insertBoard";}@RequestMapping(value="/insertBoard.do", method=RequestMethod.POST)public String insertBoard(BoardDTO boardDTO) { boolean flag=boardService.insert(boardDTO); System.ou..

javaboiii의 Spring 2024.10.10

Spring - ViewResolver와 요청 처리 흐름 (feat.@controller)

SpringViewResolverViewResolver는 Spring MVC에서 클라이언트 요청에 따라 적절한 뷰(화면)를 선택하는 역할을 함다양한 종류의 ViewResolver가 존재하기 때문에, 객체를 생성할 때 반드시 ID를 명시해야 됨 화면 이동의 책임실질적인 화면 이동은 DispatcherServlet(DS)이 담당따라서 ViewResolver의 설정은 개발자가 명시적으로 해주어야 하며,상황에 따라 어떤 ViewResolver를 사용할지를 선택해야 함 데이터 출력이 필요한 경우WEB-INF을 통해 보을 강화할 수 있음 WEB-INF 폴더 하위의 파일은 사용자가 직접 접근할 수 없으므로, 보안이 강화됨WEB-INF 폴더 하위에 위치한 JSP 파일들은 반드시 서버를 통해 접근해야 됨 V..

javaboiii의 Spring 2024.10.08

Spring - SpringFramework구조의 흐름

SpringDispatcherServletDispatcherServlet은 서블릿으로, 요청을 받고 적절한 컨트롤러로 전달하는 역할을 수행  서블릿 컨테이너DispatcherServlet은 서블릿이므로 서블릿 컨테이너(Tomcat)에 의해 관리됨요청이 들어올 때마다 DispatcherServlet이 자동으로 호출서블릿을 설정하기 위해 web.xml 파일에 서블릿 매핑 ds org.springframework.web.servlet.DispatcherServlet ds *.do login main 요청 처리 흐름서버 구동 == 톰캣 == 서블릿 컨테이너 => web.xml 보고 어 ? Spring에서 제..

javaboiii의 Spring 2024.10.07

Spring - 개념 복습 / 어노테이션

Spring[복습]스프링 프레임워크는 IoC(Inversion of Control)와 AOP(Aspect-Oriented Programming)를지원하는 경량의 프레임워크개발자가 객체를 직접 생성하고 관리하는 대신, 스프링 컨테이너가 이 모든 과정을 자동으로 처리함설정 파일pom.xml -  라이브러리 설정 파일로, 의존성을 관리applicationContext.xml: -  스프링 컨테이너 설정 파일로, 애플리케이션의 객체를 정의하고 관리web.xml -서블릿 컨테이너(예: 톰캣) 설정 파일로, 서블릿의 매핑 및 초기 설정스프링 컨테이너정의  -  개발자가 직접 객체를 생성(new)하고 관리하는 대신, 스프링 컨테이너가 대신 수행예시 -  서블릿 컨테이너(톰캣)는 new FC();와 fc.doGet()..

javaboiii의 Spring 2024.10.04