본문 바로가기

개발/교육34

(JPA) 59일차 JPA 관계 맵핑 @OneToMany (1:N) @ManyToOne (N:1) OneToMany @OneToMany(mappedBy="book", fetch=FetchType.eager) private List orders; -> book 테이블 입장에서 book 테이블과 orders 테이블은 1:N 관계라는 의미 ManyToOne @JoinColumn(name = "조인 할 컬럼", insertable =true ,updatable = true) private Book book; -> Orders 입장에서 orders 테이블과 와 book 테이블은 은 N:1 관계라는 의미 JPA 사용자 정의 sql @Query 어노테이션을 이용하여 정의 테이블 명은 Entity 클래스 이름과 일치시켜야함 주의할 점은 .. 2022. 6. 24.
(Thymeleaf/JPA) 58일차 타임리프(Thymeleaf) 타임리프에서는 쿼리스트링이 아닌 URI 방식으로 파라미터를 전달하도록 권장 jsp의 포지션을 담당할 것임 URL 방식으로 파라미터 넘기기 @{'서비스명'/+${넘길 파라미터 값} }" 타임리프 사용을 위한 세팅 Thymeleaf 문법 설명 타임리프에서 상태 유지 값은 '태그 안에 속성'으로 들어감 JSP 와 마찬가지로 ${} 표현식 을 사용한다 xmlns:th 타임리프의 th속성을 사용하기 위해 선언된 네임스페이스 th:text span태그의 경우 text에 값이 들어간다 th:text="${상태 유지된 변수}" th:value 보내줘야 할 값 th:each JSTL의 foreach와 비슷한 기능 th:each="변수명:${상태 유지된 list변수}" th:name input.. 2022. 6. 23.
(Spring) 57일차 스프링 시큐리티 로그인 과정 1. 로그인 페이지 요청 ( login.jsp ) 1.1. WebSecurityConfigurerAdapter를 구현한 configure() 함수 호출 하여 권한 별 페이지 출력 2. id/password 입력 후 로그인 버튼 클릭하여 해당 정보를 갖는 서비스를 찾음 3. post 방식은 스프링 시큐리티가 알아서 해줌 3.1 스프링 시큐리티는 UserDetailsService를 구현한 loadUserByUsername() 함수를 호출하여 알아서 값 비교하여 알아서 로그인을 해줌(스프링 시큐리티 마법....) 더보기 login 페이지 로그인 아이디 : 비밀번호 : SecurityConfig configure() 함수 @Configuration @EnableWebSecurity .. 2022. 6. 22.
(Spring) 41일차 ReqeustMapping GET/POST 방식 설정 @ReqeustMapping(value=".do", method=RequestMethod.GET) @ReqeustMapping(value=".do", method=RequestMethod.POST) Model 클래스를 이용하여 상태유지 아래와 같이 사용 가능 (매개변수로 전달) @RequestMapping("/listBook.do") public void list (Model model) { model.addAttribute("title", "상품목록"); model.addAttribute("list", dao.listBook()); } 컨트롤러 객체를 xml에 자동으로 설정 (오토 스캔) component-scan : Bean으로 등록 될 준비를 마.. 2022. 5. 27.
(JSP)36일차 MVC 패턴 Model, View, Controller의 약자로, 웹 애플리케이션을 비즈니스 로직, 프레젠테이션 로직, 요청처리 데이터로 분리하는 디자인 패턴 비즈니스 로직 사용자의 요청에 따른 일을 처리하는 코드를 의미 (예를들어 / 고객, 제품, 주문정보의 조작) 프레젠테이션 로직 사용자에게 보여주기 위한 부분 (위치, 폰트, 크기 등) 요청 처리 데이터 비즈니스 로직 + 프레젠테이선 로직 함께 묶는 것 MVC 구성요소 모델(model) 비즈니스 로직을 담는 객체 (사용자의 일처리를 위해 사용되는 모든 자바 class) 뷰(View) 모델의 정보를 보여주는 역할 (JSP) 컨트롤러(controller) 모델과 뷰 사이에 동작이 있을 때 조정하는 역할 (Servlet) 웹으로부터 받은 요청에 가장 적합.. 2022. 5. 20.
(JSP)35일차 JDBC java에서 DBMS의 종류와 관계없이 데이터베이스를 조작하기 위한 API ResultSet 클래스 DB에 등록된 데이터를 가져올 때 사용 ( Select 하였을 때 ) executeQuery(SQL) 의 결과 값이 ResultSet의 타입으로 반환 된다 while() 문을 사용하여 ResultSet 타입으로 저장된 값을 커서위치를 'next(), next()' 하면서 'getString/getInt' 한다. next() - 현재 레코드에서 다음 레코드로 커서를 이동시킴 (성공: true, 실패: false) previous - 커서를 역방향으로 이동시킴 first() - 첫번째 레코드로 커서를 이동 last() - 마지막 레코드로 커서를 이동 isFirst() - 커서의 위치가 처음인지 조회 .. 2022. 5. 19.
(JSP) 34일차 세션(Session) 내장 객체가 존재 ( session . ~~ ) 세션 자료형 Object 형 세션은 웹 브라우저마다 할당 받음 쿠키(Cookie) 직접 객체 생성 필요 ( new Cookie() ) 쿠키 자료형 String 세션 내장객체 이용 방법 세션 값 저장 (setAttribute) 세션에 값을 저장 session.setAttribute(String name, Object value) "title"이라는 세션 ID에 "JSP Programming" 이라는 값을 저장 session.setAttribute("title", "JSP Programming"); 세션 가져오기 (getAttribute) 세션 명을 통하여 값을 가져옴 object형으로 반환 받기 때문에 String or Integer 로.. 2022. 5. 18.
(HTML, CSS ) 32일차 전체 선택자 와일드 문자(*) 사용하여 모든 태그에 적용시키는 셀렉터 * { color : green; } 속성 셀렉터 선택자 [type="text"] { color : red; } text 타입을 갖는 선택자를 의미 가상클래스 셀렉터 (콜론으로 시작) 어떤 조건이나 상황에서 스타일을 적용하도록 만든 셀럭터 선택자:hover { background : yellowgreen; } :hover -마우스가 올라갈 때 스타일 적용 :active - 마우스로 누르고 있는 상황에서 스타일 적용 :focus - 폼요소가 키보드아 마우스 클릭으로 포커스를 받을 때 :link - 방문하지 않은 링크에 스타일 적용 :visited 방문한링크에 스타일 적용 ;first-letter - 블록태그에서 (p, div) 첫글자를 .. 2022. 5. 12.
(HTML, CSS ) 31일차 태그, input type .... .... 나라 : 버튼만들기 (input, button) 확인2 확인3 체크박스 CheckBox JSP에서 받을 때 배열로 받아야 함(중복선택이 가능하기 때문에) getParameterValues("name") 사용 checked 옵션으로 기본 값 체크 가능 2022. 5. 11.
(HTML, CSS ) 30일차 video 태그 [지원하지 않을 경우 출력 될 문자 입력 ] audio 태그 [지원하지 않을 경우 출력 될 문자 입력] HTML5의 문서 구조화 기존 HTML은 웹 문서 구조를 표현하는 태그가 없음(모두 div나 table로 구조화 되어 보이게 작성) 구조화를 위한 태그 (시맨틱 태그) 내용 탐색이 용이(태그마다 대략적인 용도가 있기에) 물론 해당 태그 자체의 기능은 없음 (단순 설명을 위함) header nav section aside footer 태그 이미지의 제목이나 이미지의 꼬리말(설명)을 표현할 수 있음 와 details로 전체 단락을 묶고, summary를 제목으로 표현 details와 summary Question1 웹 개발자가 알아야 하는 언어 3가지 Answer 1 HTML, CSS, J.. 2022. 5. 10.
(HTML, CSS ) 29일차 HTML5 페이지의 기본 구조 본문, 이미지, 테이블, 자바스크립트 코드, 동영상 등 HTML 태그의 속성은 대소문자 구분하지 않음 기본 TAG 헤드라인을 위한 태그(h1~h6) 'h1'의 글자 크기가 가장 크고 'h6'이 가장 작다 단락 나누기 (p) 단락을 나눌 수 있음 .. .. .. 줄 바꾸기(br) 줄을 바꿀 수 있음 기호 표현 수평선 긋는 태그 IMG 태그 이미지를 표현할 때 사용 img 의 alt 속성 안에 텍스트를 넣었을 경우 이미지가 존재하지 않을 때 해당 텍스트가 출력 됨 리스트 (ul, ol) ul, ol 안에 li 태그를 사용하여 값을 입력 ol 은 순서있는 리스트로 type을 붙일 수 있음 (1, 2, 3, 4 식으로 표현 가능) 물을 끓인다 라면과 스프를 넣는다 파를 썰어넣는다 .. 2022. 5. 9.
(데이터베이스) 27일차 ERwin - Default, Check 조건 걸기 디폴드 값 설정 : Defalut - New - 필드명과 값 적어주기 Check 제약조건 걸기 : Valid - New - 필드명과 값 적어주기 적 용 완 료 prepared statement String sql = "INSERT INTO ROOM VALUES (?, ?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // ?의 순서대로 값을 설정 // 문자열 : setString(물음표위치, 값) // 정수 : setInt(물음표위치, 값) pstmt.setInt(1, r_no); pstmt.setString(2, r_type); pstmt.setInt(3, r_fee); pstmt.execu.. 2022. 5. 3.
(데이터베이스)26일차 용어정리 File system 상 file, record, key, field Data Modeling 상 Entity, Tuple, Identifier, Attribute R-DB 상 Table(Relation), Row(Instance), Key, column 모델링 조직의 정보 구조를 개체, 관계, 속성, 식별자로 나타내는 것 데이터 모델링의 목적 데이터 품질 향상 (무결성, 확장성, 비중복성, 정확성 등) 연관 조직의 정보 요구에 대한 정확한 이해를 제공 개발자, 설계자, 분석가, 사용자 간에 의사 소통 수단 신규 및 개선 시스템에 대한 기반 제공 모델링 과정 개체파악 - 개체 및 관계 정의 식별자파악 - 식별자 정의 상세화 - 정규화 통합 - 사용자뷰 통합 검증 - 모델의 품질 검증 물리모델링 .. 2022. 5. 2.
(데이터베이스)18일차 Join 관계형 데이터베이스에서 검색하고자 하는 컬럼이 두개 이상의 테이블에 있을 때에 조인을 사용 테이블과 테이블 간에 참조관계이 있을 경우 사용 가능 where 절에 아래와 같이 join식을 적어준다 WHERE .. .. .. AND A테이블.속성1 = B테이블.속성1 A테이블.속성2 = C테이블.속성2 연산의 우선순위를 주기 위해서 괄호를 꼭 잘 써줄 것 - 연산의 우선순위가 'and' > 'or' 이기 때문에 괄호 잘 묶어줄 것 - 'or' 연산 일 경우는 괄호 써주는 게 좋다 간단하게 웹 환경 구성하기 1. 톰캣 설치 (윈도우 환경으로 설치할 것임) https://tomcat.apache.org/ 2. 자바 경로 설정 (필자의 경우 OPEN JDK를 설치함) Installer 다운로드 후 nex.. 2022. 5. 1.
(데이터베이스)25일차 PL/SQL 조건식 IF 조건식 THEN ... ELSE ... END IF 책 이름이 존재한다면 가격을 'UPDATE' 책 이름이 존재하지 않는다면 'INSERT' CREATE OR REPLACE PROCEDURE BookInsertOrUpdate( p_bookid IN number, p_bookname IN VARCHAR2, p_publisher IN varchar2, p_price IN varchar2 ) AS mycount NUMBER; BEGIN SELECT COUNT(*) INTO mycount FROM book WHERE bookname=p_bookname; IF mycount !=0 THEN UPDATE BOOK SET price = p_price WHERE bookname =p_bookn.. 2022. 4. 29.
반응형