전체 글(39)
-
19일차
2023.08.29 수업 이슈 xml 기반의 sql Mapper 설정문서간의 Wiring 작성하기 Controller 코드 완성하기 ▶ MyBatis mapper에서 pvo, rvo 간의 동기화 문제 ✔️ 위와 같이 작성하면 안된다 ✔️ 위와 같이 작성하면 안된다 DB에서 sysdate, squence 값은 자동증가한다. 이게 컬럼을 비교하는 pk일 때, pvo과 rvo간의 동기화가 안되면 문제가 생긴다. ▶ 동적 쿼리 ▶ 풀스택 Architecture 인터페이스 상속받은 재사용성 강한 클래스를 컴포넌트라고 한다. 메소드명은 아무거나 해도 되지만 결과는 ModelAndView이어야 한다. 여기에 안들어가는거 물리적 위치, 확장자 정보를 따로 담는 InternalResourceViewResolver. In..
2023.11.05 -
[Web]WEB와 WAS의 차이
먼저, 정적 페이지와 동적 페이지를 알아보자. ▶정적 페이지 바뀌지 않는 페이지 웹 서버는 파일 경로 이름을 받고, 경로와 일치하는 file contents를 반환함. 항상 동일한 페이지를 반환한다. ▶동적 페이지 인자에 따라 바뀌는 페이지 인자의 내용에 맞게 동적인 contents를 반환한다. 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물이다 Servlet :: WAS위에서 돌아가는 자바 프로그램 개발자는 Servlet에 doGet() 메소드를 구현한다. ▶WEB 개념에 있어서 하드웨어와 소프트웨어로 구분된다. (1) 구분 ✔ 하드웨어 :: Web 서버가 설치되어 있는 컴퓨터 ✔ 소프트웨어 :: 웹 브라우저 클라이언트로부터 Http 요청을 받고, 정적인 컨텐츠(html, css 등)를 제공하..
2023.11.01 -
[DB]SQL vs NOSQL
▶ SQL(관계형 DB) 1️⃣ 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다. 데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이터 유형으로 정의된다. 따라서, 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 RDBMS의 특징 중 하나다. 2️⃣ 데이터는 관계를 통해 여러 테이블에 분산된다. 데이터의 중복을 피하기 위해 '관계'를 이용한다. 하나의 테이블에서 중복없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없어지는 장점이 있다. 따라서, 여러 테이블에 조인할 필요없이 이미 필요한 모든 것을 갖춘 ..
2023.10.30 -
18일차
2023.08.28 수업 이슈 MyBatis Framework - Spring DI - SpringMVC 연결하기 ▶ 구현 작업 순서 1️⃣ 테이블 생성 2️⃣ vo 생성 → vo생성 시, 컬럼명과 필드명이 일치하는지 볼 것 → camel case아니면 mybatis 매핑시underbarCamelcase 사용 불가3️⃣ MyBatis(config file, mapper file 작성) 4️⃣ MyBatis JUnitTest(제일 중요) 5️⃣ DAO/DAOImpl, Service / ServiceImpl → sql id값이 template기능의 이름이다. → 여기까지 같이 작업하고 흩어진다(Dispatcher Servlet에서 멈춘다) → 프론트부터 내려오면서 아구를 맞춘다 → 프론트는 피그마 같은 걸로..
2023.10.28 -
17일차
2023. 08.25 수업 이슈 SpringMVC ▶ 작업 순서 ▶ DispatcherServlet으로 요청시 컨테이너 내부에서 요청 흐름 ✔️ Spring ModelAndView 역할 1. request 바인딩 2. result.jsp 페이지로 forward된다. ▶ Maven Maven은 중앙 저장소를 통한 자동 의존성 관리를 중앙 저장소(아파치재단에서 운영 관리)는 라이브러리를 공유하는 파일 서버라고 볼 수 있고 버전에 비교적 자유롭다. 기본적인 것들을 다 넣어준다. 사이트에서 다운받아온다. 사용자 로컬 PC에 저장된다(사용자 → student → .m2 파일에 저장) 만약 중간에 다운로드가 실패해서 오류가나면 .m파일을 다 삭제한다. 그럼 서버는 다시 다운로드해서 .m2 파일에 저장한다. ▶ PO..
2023.10.27 -
[DB] SQL Injection
해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법 ▶️공격 방법 1. 인증 우회 보통 로그인을 할 때, 아이디와 비밀번호를 input 창에 입력하게 된다. 쉽게 이해하기 위해 가벼운 예를 들어보자. 아이디가 abc, 비밀번호가 만약 1234일 때 쿼리는 아래와 같은 방식으로 전송될 것이다. SELECT * FROM USER WHERE ID = "abc" AND PASSWORD = "1234"; SQL Injection으로 공격할 때, input 창에 비밀번호를 입력함과 동시에 다른 쿼리문을 함께 입력하는 것이다. 1234; DELETE * USER FROM ID = "1"; 보안이 완벽하지 않은 경우, 이처럼 비밀번호가 아이디와 일치해서 True가 되..
2023.10.27