분류 전체보기110 [Spring] 게시판 프로젝트16 - 검색기능1 (MyBatis처리) SQL작성 오라클의 검색 조건에 대한 처리는 인라인 뷰 내부에서 이루어진다. 기존의 list출력 쿼리에서 검색한 내용만을 출력하게끔 쿼리를 변경해보면 아래처럼 작성할 수 있을 것이다. (아래의 쿼리는 페이징처리가 포함된 쿼리이다.) select * from ( select /*+ INDEX_DESC(tbl_board tbl_board_pk) */ rownum rn, bno, title, content, writer, regdate, updatedate from tbl_board where title like '%테스트%' or content like '%테스트%' and rownum 10; 그러나 결과를 출력해보면 10개의 데이터가 아닌 더 많은 데이터를 출력함을 알 수 있다. 왜냐하면 AND연산이 OR.. 2021. 8. 8. [MyBatis] 동적 SQL 동적 SQL MyBatis의 가장 강력한 기능 중 하나는 동적 SQL을 처리하는 방법이다. MyBatis의 동적 태그는 SQL을 파라미터들의 조건에 맞게 조정이 가능하게 하고, 약간의 구문을 이용해서 전달되는 파라미터를 가공해서 경우에 따라 다른 SQL을 만들어 주는 기능이 있다. 👇 MyBatis 동적 태그는 아래의 문서에서 기능들에 대한 설명 및 사용법을 확인할 수 있다. https://mybatis.org/mybatis-3/ko/dynamic-sql.html MyBatis – 마이바티스 3 | 동적 SQL 동적 SQL 마이바티스의 가장 강력한 기능 중 하나는 동적 SQL을 처리하는 방법이다. JDBC나 다른 유사한 프레임워크를 사용해본 경험이 있다면 동적으로 SQL 을 구성하는 것이 얼마나 힘든 작.. 2021. 8. 8. [Spring] 게시판 프로젝트15 - 페이징 처리3 페이징 처리2 게시물과 이어지는 내용입니다. 2021.07.20 - [Spring/게시판프로젝트] - [Spring] 게시판 프로젝트14 - 페이징 처리2 [Spring] 게시판 프로젝트14 - 페이징 처리2 페이징 처리1 게시물과 이어지는 내용입니다. 2021.07.20 - [Spring/게시판프로젝트] - [Spring] 게시판 프로젝트13 - 페이징 처리1 [Spring] 게시판 프로젝트13 - 페이징 처리1 프로젝트용으로 데이터가 그렇 taetoungs-branch.tistory.com 그리고 get페이지의 목록 버튼은 사실상 뒤로가기와 의미가 같아서 그냥 삭제했다. 이번 게시물에서는 삭제되었을 때 페이지 정보가 같이 이동하도록 처리해보겠다. 수정 페이지에서 삭제 버튼을 눌러 게시글을 삭제하게되면.. 2021. 8. 7. [Spring] ICS단계적보안성평가WEB - DA 단계적 보안성 평가 코드 Non Direct/Direct DA 단계적 보안성 평가 조건 1) DA 단계적 보안성 평가 관리(EP DA 중요도 평가) - (영향성 분석 = Emergency Preparedness Function) AND - (대체 수단 존재 여부 = Y) AND (손상여부 탐지방법 존재 여부 = Y) AND (교육 훈련 계획 존재 여부 = Y) 2) DA 단계적 보안성 평가 관리(BOP DA 중요도 평가) - (영향성 분석 = Important to Safety) AND - (안전 시스템에 악영향 여부 = N) AND (발전정지 유발 여부 = Y) AND (발전소 상태 정보 제공 여부 = Y) AND (심층 방호 관련 여부 = N) 3) DA 단계적 보안성 평가 관리(Indirect DA 중요도 평가) - (안전.. 2021. 8. 5. [C자료구조] 전화번호부1 - 순서에 관계없이 배열로 CRUD구현 문제. 이미지와 같이 동작하도록 코드를 구현한다. ◾ 문제 동작 원리 #define _CRT_SECURE_NO_WARNINGS #include #include #include #define BUFFER_SIZE 100 #define CAPACITY 100//최대 100명의 정보를 저장 char* names[CAPACITY]; char* numbers[CAPACITY]; int numberOfPeople = 0; void add(); void find(); void status(); void remove_user(); void add() { char name[BUFFER_SIZE]; char number[BUFFER_SIZE]; scanf("%s", name); scanf("%s", number); nam.. 2021. 8. 1. [C자료구조] 문자열 연습 👇 해당 강의 내용을 참고함 C로 배우는 자료구조 및 여러가지 예제 실습 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 연습1. 사용자 입력한 문자열과 문자열의 길이를 출력하기 방법1) gets() #include #include #define BUFFER_SIZE 20 int main(){ /*방법1 : gets사용 - 안전하지 않음*/ char input[BUFFER_SIZE]; while (1) { printf("$ "); gets_s(input, BUFFER_SIZE); printf("%s:%d\n",input,strlen(input)); } } ◾ BUFFER_SIZE까지만 읽어야 하는데 정해.. 2021. 7. 31. [Spring] ICS단계적보안성평가WEB - 사번 유효성 검사 및 승인 코드 회원가입을 한 경우 바로 로그인을 할 수 있는 것이 아니라, 관리자의 승인을 받아야 로그인할 수 있다. 회원가입 시 입력한 사번에 대해 유효성 검사를 진행한 후, 성공적으로 인증이 되면 승인 버튼이 활성화가 된다. MVC부분 1. UserVO package com.hanium.domain; import java.util.Date; import lombok.Data; @Data public class UserVO { private String userid;//사번 private String userptype; private String userdept; private String username; private String userpw; private String useremail; private Stri.. 2021. 7. 27. [Spring] 게시판 프로젝트14 - 페이징 처리2 페이징 처리1 게시물과 이어지는 내용입니다. 2021.07.20 - [Spring/게시판프로젝트] - [Spring] 게시판 프로젝트13 - 페이징 처리1 [Spring] 게시판 프로젝트13 - 페이징 처리1 프로젝트용으로 데이터가 그렇게 많지 않기 때문에 페이징 처리에 고려하지 않을 수도 있지만 실 서비스에서는 대량의 데이터 조회를 위해 페이징 처리가 필수적이다. 이번 실습에서는 게시판 taetoungs-branch.tistory.com 이제 페이징 처리를 화면에서 보여주는 작업을 해볼 것이다💁♀️ 페이징 화면 처리 시에 필요한 정보들은 다음과 같다. - 현재 페이지 번호 (page) - 이전 링크 표시 여부 (prev) - 다음 링크 표시 여부 (next) - 화면에 보이는 시작 번호 (startP.. 2021. 7. 20. [Spring] 게시판 프로젝트13 - 페이징 처리1 프로젝트용으로 데이터가 그렇게 많지 않기 때문에 페이징 처리를 고려하지 않을 수도 있지만 실 서비스에서는 대량의 데이터 조회를 위해 페이징 처리가 필수적이다. 이번 실습에서는 게시판에 페이징 처리를 해볼 것이다. 페이징 처리를 위한 sql쿼리를 작성할 때 hint에 대해서 이해할 필요가 있으니, 아래의 게시물에서 먼저 실행계획과 hint를 이해하고 진행하는 것을 권장한다. 2021.07.20 - [Database] - [Oracle] 실행 계획(Execution plan)과 hint사용의 필요성 [Oracle] 실행 계획(Execution plan)과 hint사용의 필요성 스프링 개발을 하면서 이제 페이징 처리 단계에 다다랐는데, 페이징 처리는 SQL쿼리 작성에 대해 신중히 생각해볼 필요성이 있다. 일반.. 2021. 7. 20. [Oracle] 실행 계획(Execution plan)과 hint사용의 필요성 스프링 개발을 하면서 이제 페이징 처리 단계에 다다랐는데, 페이징 처리는 SQL쿼리 작성에 대해 신중히 생각해볼 필요성이 있다. 일반적으로 우리는 게시물 양이 많은 경우 페이지를 나누게 된다. 그리고 화면에 보여주는 과정에서 최신 등록 순으로 가져오는 것을 선호한다. 그럼 먼저 전체 데이터를 역순으로 정렬해서 조회해야 하는데, 간단히 SQL쿼리를 select * from tbl_board order by bno desc; 이런식으로 작성하면 우리가 원하는 결과를 보여줄 수는 있을 것이다. 그러나 order by의 경우 데이터의 양이 많을 수록 많은 리소스를 소모한다. 사용자가 정렬이 필요한 데이터를 요청하게 된다면 정렬된 결과를 볼 때까지 오랜 시간을 기다려야 하고, 특히 여러명의 사용자가 동시에 요청을.. 2021. 7. 20. [Spring] 게시판 프로젝트12 - 게시물 수정, 삭제 게시물 등록 과정에서 우리는 처음 등록페이지를 들어갈 때는 get, 입력폼을 작성하여 등록 버튼을 눌렀을 때는 post방식을 사용하였다. 아래의 컨트롤러 코드를 보면 확인할 수 있다. (기존에 작성했던 코드임) BoardController.java //게시물 등록 화면 @GetMapping("/register") public void registerGET() { } //실제로 게시물을 등록하는 경우 @PostMapping("/register") // 글을 등록하는 경우에는 get방식이 아니라 post방식을 사용한다. public String register(BoardVO board, RedirectAttributes rttr) { // RedirectAttributes : log.info("[CONTRO.. 2021. 7. 14. [Spring] 게시판 프로젝트11 - detail페이지로 이동(+history.state제어) 리스트에서 특정 게시물을 선택해서 세부 내용을 조회하고 싶은 경우에는 get방식을 사용한다. get방식으로 bno(pk)값을 넘겨주기 위해서는 아래의 코드를 수정해야한다. 해당 코드는 단순히 bno값을 조회하는 부분이다. bno부분을 눌렀을 때 디테일 페이지로 이동하도록 a태그를 붙여준다. 코드를 보면 부분은 결과적으로 숫자값이기 때문에 get방식으로 붙여주었다. (url의 get은 페이지 이름이다.) 우린 이전 실습에서 컨트롤러에 /get을 정의해주었다. 미리 작업을 해두었기 때문에 a태그로 연결만 해도 디테일 페이지로 이동이 가능하다. @GetMapping("/get") public void get(@RequestParam("bno") Long bno, Model model) { model.addAt.. 2021. 7. 13. [Spring] 게시판 프로젝트10 - Redirect 처리 (addFlashAttribute) Redirect : 등록 과정에서 post방식으로 데이터가 처리되는 과정 우리가 일반적으로 사용하는 웹페이지(게시판)에서 동작하는 방식은 대부분 아래와 동일하다. 게시물 등록 페이지에서 form을 작성하여 전송버튼을 누르면 입력된 항목들이 BoardController에 전달된다. 컨트롤러는 /boards/list로 Redirect시킨다. 브라우저가 다시 컨트롤러에 /list를 호출하면 컨트롤러는 /list에 매핑된 메소드가 정의한 내용대로 목록 페이지를 브라우저에 띄운다. 이 때 우리가 게시물을 등록하고 전송버튼을 누르면 목록페이지로 자동으로 이동하는 것이 Redirect이다. 물론 이 Redirect는 등록 뿐만아니라 수정, 삭제의 경우에도 사용한다. redirect시에 데이터를 전달할 수 있는 방법으.. 2021. 7. 13. [Spring] JPA CRUD Create / Update - Repository 단계에서 정의 메인함수 코드 package com.sparta.week02; import com.sparta.week02.domain.Course; import com.sparta.week02.domain.CourseRepository; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.sp.. 2021. 7. 13. [Spring] JPA 기초 JPA SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기 JPA가 필요한 이유 1. SQL문 일일이 쓰고 있다가 시간 다 감 2. 기존에 mysql쓰다가 oracle을 사용하려는 경우 sql문법에 대한 검토를 하기 굉장히 번거로움 예시 아래의 JPA 사용 코드를 SQL문으로 자동으로 번역해줌 repository.save(new Customer("Taeong",23)); JPA 사용 전 알아야 할 개념 1. Domain(Entity) = table 테이블이랑 1:1 대응됨 2. Repository = sql SQL의 역할을 함 repository에 써 있는 코드가 JPA코드를 사용하는 것과 같음 JPA 사용하기 현재의 디렉토리 구조는 다음과 같다. course테이블을 생성하.. 2021. 7. 12. 이전 1 2 3 4 5 6 ··· 8 다음