공부/Backend17 Spring boot 회원 관리 예제 #비지니스 요구사항 정리 컨트롤러(Controller) 계층: 표현 계층과 응용 계층 사이에서 위치하며, 사용자의 입력을 받아 응용 계층으로 전달하거나 응용 계층에서 받은 데이터를 표현 계층에 전달하는 역할 주로 사용자 인터페이스와 상호작용하면서 해당 요청을 처리하고 응용 계층에 전달하여 비즈니스 로직을 수행 서비스(Service) 계층: 응용 계층과 데이터 계층 사이에서 비즈니스 로직을 처리하는 계층 응용 계층에서 필요한 기능을 제공하고, 트랜잭션 관리, 보안, 로깅 등의 부가적인 기능을 담당 여러 컨트롤러에서 공통으로 사용되는 로직을 추상화하여 재사용성을 높일 수 있음. 리포지토리(Repository) 계층: 데이터 계층과 도메인 계층 사이에서 위치하며, 데이터베이스와의 상호작용을 캡.. 2024. 1. 14. Spring Boot 메세지 리소스 파일 작성 메세지 리소스파일 - 프로젝트에 지원가능한 각 언어에 대해 메시지 리소스 파일 (*.properties) 을 생성하여 출력할 메세지 작성 - key = value 쌍으로 구성 ( key 는 뷰 페이지에서 메세지를 참조하는데 사용) - 기본 언어의 메세지 리소스 파일을 '파일 이름. properties' 형태로 작성 Person.form.Enter.message = 당신의 정보를 입력하세요 -다양한 언어로 된 뷰 페이지를 지원하려면 특정 언어별 리소스 파일 작성해야 함. ( 파일 이름_ 언어코드_국가코드.properties ) - 메세지 리소스 파일은 src/main.resources 폴더에 위치 파일형식 설명 파일이름.properties 시스템 언어/ 지역에 맞는 리소스 파일이 .. 2024. 1. 6. Spring boot 3장 3.4 요청처리 메소드와 모델 유형 #요청 처리 메소드 - 스프링 MVC에서 사용자 요청을 처리하는 메서드 - @RequestMapping 에 설정된 요청 매핑 경로에 따라 호출됨. @RequestMapping(...) public String 메서드 이름() { //모델 (객체) 에 응답 데이터 저장 return "뷰 이름" ; } - 사용자 요청을 처리한 결과를 웹 브라우저 화면에 보여주는 모델과 뷰가 있음. 모델 뷰 사용자의 웹 요청을 처리한 결과 데이터를 관리하고 전달 처리한 결과 데이터를 웹 브라우저에 출력하는 웹페이지 역할 아래는 응답 데이터를 저장하는 모델 유형 모델( &뷰) 클래스 설명 Model 데이터(객체) 정보를 저장하는 데 사용 ModelMap 데이터(객체) 정보를 저장하는 데 사용.. 2023. 12. 30. SQL 레벨업 9장 , 10장 9장 갱신과 데이터 모델 26강 갱신을 효율적으로 1. NULL 채우기 UPDATE OmitTbl SET val = (SELECT val FROM OmitTblOT1 WHERE OT1.keycol = (SELECT MAX(seq) FROM OmitTbl OT2 WHERE OT2.keycol = OmitTbl.keycol AND OT2.seq < OmitTbl.seq AND OT2.val IS NOT NULL)) WHERE val IS NULL; OT2 테이블 스캔의 결과를 MAX 함수로 집약하고 OT1 테이블의 레코드를 특정 데이터 양이 늘어나면 기본 키 인덱스를 사용해서 풀 스캔보다 효율적으로 접근 2. 반대로 NULL을 설정 UPDATE OmitTbl SET val = CASE WHEN val = (.. 2023. 12. 2. SQL 레벨업 - 8장 23 강 레코드에 순번 붙이기 - 윈도우 함수 - 상관 서브 쿼리 -> 기능적으로 동일하지만, 성능 측면에서 윈도우 함수를 사용하는 편이 좋음. 윈도우 함수에서는 스캔 횟수가 1회임. 인덱스 온리 스캔을 사용하므로 테이블에 직접적인 접은을 회피함. 상관 서브커리를 사용하면 2회의 스캔이 발생함. 서브쿼리 보다는 윈도우 함수를 사용하는 것이 더 좋은 성능 기본키가 한 개의 필드일 경우 기본키가 여러 개의 필드일 경우 상관 서브쿼리의 경우 다중 필드 비교를 사용. 그룹마다 순번을 붙이는 경우 순번과 갱신 기존 테이블에 순번 필드를 추가하여 순번을 갱신하는 구문을 설명 1. 기본 키가 한 개의 필드일 경우 SELECT student_id, ROW_NUMBER() OVER (ORDER BY student_id).. 2023. 11. 25. SQL 레벨업 - 7장 21강 서브쿼리가 일으키는 폐해 1. 서브쿼리의 문제점: 실체적인 데이터를 저장하지 않음 - 연산 비용추가 실체적 데이터를 저장하고 있지 않아서, 서브쿼리에 접근할 때 마다 SELECT 구문 실행해야함. -> 복잡할수록 실행 비용이 더 높아짐 - 데이터 I/O 비용 발생 메모리 용량이 충분하지 않으면 오버헤드 발생. ( DBMS 가 저장소에 있는 파일에 결과를 쓸 수 있음) - 최적화 불가 서브쿼리로 만들어지는 데이터는 테이블과 차이가 없지만, 서브쿼리에는 메타 정보 (명시적 제약, 인덱스) 가 존재하지 않아서 옵티마이저 가 쿼리를 해석하기 위한 정보를 서브 쿼리에서 얻을 수 없음 2. 서브쿼리 의존증 고객의 구입 명세 정보를 저장하는 테이블(Receipts)에 순번(Seq 또는 AI idx) 필드는 오.. 2023. 11. 18. 이전 1 2 3 다음