본문 바로가기

전체 글395

5월 16일 (1) Spring - AJAX DB 연동 setting 1. pom.xml 2. application.properties 3. 폴더 생성 4. services - spring boot 연결 비동기 전송AJAX 단순 데이터(문자열) 전송 데이터 형식 : {"변수명":데이터} - 변수명 부분은 항상 문자열로 작성 - " " 사용 - 데이터 부분은 전송 데이터를 자바스크립트 변수에 넣고 사용할 것으로 추천함 예) 보낼 변수명 - data 보낼 데이터 - 홍길동 let d = "홍길동"'; let sendObj = {"data":d} // dao @Mapper public interface MemberDao { // 입력한 uid로 검색하여 값이 나오는지 확인 @Select("SELECT count(*) FROM usertb1 WHERE uid=#{u.. 2023. 5. 16.
1096. 바둑판에 흰 돌 놓기 기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다. 오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가 "바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다. 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자. 참고 가로번호, 세로번호를 사용할 수 있는 2차원 배열을 사용하면 이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다. 예시 int n, i, j, x, y; int a[20][20]={}; scanf("%d", &n); for(i=1; i 2023. 5. 16.
5월 15일 (2) Spring - AJAX AJAX(비동기전송) 프론트엔드(html, jsp, thymeleaf, js 등)와 백엔드(Spring Framework) 간 통신 1. 동기(Synchronous) 통신 페이지가 변경되는 전송 방식(새로고침 포함) , , location.href="/..." 2. 비동기(Asynchronous) 통신 js에서만 처리. 페이지는 변경되지 않고, 같은 페이지의 특정 부분을 변경. aja(jQuery). 이 방식을 RESTful방식이라고 함. 참고> SPA(Single Page Application) 하나의 페이지 템플릿만을 사용하여 전체 사이트를 구축하는 방식. AJAX(Asynchrounous Javascript And Xml) 자바스크립트에서 제공하는 비동기 통신용 객체인 XMLHttpRequest를 .. 2023. 5. 15.
5월 15일 (1) Spring - CRUD(수정) Get 방식 전송에 사용되는 URL 인코딩용 특수 문자 get전송 url http://my.home.com/some?data1=어떤값&data2=또+다른값 url/메소드?데이터변수이름 원래 사용하는 get 방식 같은 페이지라면 url은 생략 가능 - ? : url과 데이터의 구분, url?이름=값 - & : 데이터 간 구분. url?이름1=값1&이름2=값2..... - + : 값에 들어간 공백. 값+문자열 => '값 문자열', 공백문자 ' '를 사용하지 않음(띄어쓰기 허용 안됨) 사용하는 위치 : 브라우저 주소 칸. 태그의 href 속성. 자바스크립트 location.href ${item.tname} PathVariable : 경로 형식으로 데이터를 전송하는 방식 url/data => @GetMappin.. 2023. 5. 15.
5월 12일 (2) Spring - JDBC 연동 CRUD(출력, 상세보기) 1. Dao에 데이터 목록을 가져오는 메소드 선언 주의사항! Mybatis에서 List는 resultType으로 사용하지 않는다. resultType에는 목록에 저장되는 하나의 데이터 타입을 작성한다. 예) LIst -> resultType="String" LIst -> resultType="XxxDto" 2. dao의 메소드명 눌러서 xml create SELECT tcode, tname FROM testtb1 3. sevice에 메소드 만들기 public ModelAndView getList(){ log.info("getList()"); mv = new ModelAndView(); List tList = tDao.selectList(); mv.addObject("tList", tList); mv.se.. 2023. 5. 12.
5월 12일 (1) Spring - JDBC 연동 CRUD(입력) setting 1. pom.xml에 라이브러리 연동 2. main에 폴더 만들기 webapp/WEB-INF/views 3. resources에 폴더 만들기 mappers 4. application.properties 작성 # jsp setting spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp # static resource folder setting spring.web.resources.static-locations=classpath:static/ # port number setting server.port=80 # Mybatis mapper setting mybatis.mapper-locations=classpath:mappers.. 2023. 5. 12.
1095. 이상한 출석 번호 부르기3 정보 선생님은 오늘도 이상한 출석을 부른다. 영일이는 오늘도 다른 생각을 해보았다. 출석 번호를 다 부르지는 않은 것 같은데... 가장 빠른 번호가 뭐였지? 출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자. 참고 배열에 순서대로 기록해 두면, 기록된 내용을 모두 검사해 가장 작은 값을 찾아내면 된다. 그런데, 가장 작은 값은 어떻게 어떤 것과 비교하고 찾아야 할까? 입력 번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다. n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다. 출력 출석을 부른 번호 중에 가장 빠른 번호를 1개만 출력한다. 입력 예시 예시 복사 10 10 4 2 3 6 6 7 9 8 5 출력 예시 2 import ja.. 2023. 5. 12.
5월 11일 (2) Spring - JDBC 연동 프로젝트2 페이지 전환방식 데이터 전달은 request 객체를 주로 사용한다. 페이지 전환 시 request 객체를 사용하는 방식에 따라 두 가지로 구분한다. 1) forword : 새로 request 객체를 생성하지 않고 받은 request를 그대로 전송하는 방식 request를 한 번 더 사용하는 방식 2) redirect : 기존 request 객체를 지우고 새로 request를 생성하여 처리하는 방식. 일반적인 데이터 전송에 적합하지 않고 단순히 페이지 전환에 활용. 몇 초 후 다른 페이지로 이동(데이터x) 새로 request가 만들어져서 시간은 출력되나 msg는 데이터가 날라가서 출력되지 않음. RedirectAttributes 예를 들어, 첫 페이지를 보이도록 만든 메소드가 있고, 두번째 페이지에서 다시.. 2023. 5. 11.
5월 11일 (1) Spring - JDBC 연동 프로젝트 Spring - JDBC 연동 프로젝트 최초 프로젝트 생성 시 추가할 dependency 1. JDBC API 2. MyBatis Framework 3. MySQL Driver MyBatis Framwork DB 연동에 필요한 코드와 설정을 자동으로 처리하는 프레임워크 SQL 쿼리문과 해당 DAO 메소드 선언만 작성하면 자동으로 나머지 소스 코드를 생성하여 처리 이 때, DAO 작성은 interface 로 작성(메소드 선언부만 필요 - 리턴타입, 메소드이름, 파라미터) Mapper라는 xml 파일에 SQL쿼리문을 작성 참고) interface란? 객체지향 특성인 추상화(abstraction)를 제공하기 위한 코드 작성 방법 모든 멤버 메소드의 몸통(body) 정의하지 않는 클래스. 메소드의 선언부만 작성.. 2023. 5. 11.
1094. 이상한 출석 번호 부르기2 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다. 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부르는데, 영일이는 선생님이 부른 번호들을 기억하고 있다가 거꾸로 불러보는 것을 해보고 싶어졌다. 출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자. 참고 배열에 순서대로 기록해 두고, 기록된 내용을 거꾸로 출력하면 된다. 예시 int n, i; int a[1000]={}; scanf("%d", &n); //개수 입력 받기 for(i=1; i=1; i--) printf("%d ", a[i]); //i 번 배열에 저장되어 있는 값 출력하기 입력 번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다. n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 .. 2023. 5. 11.
5월 10일 (2) Spring - JSTL 라이브러리 JSTL(Jsp Standard Tag Library) - 간단한 프로그램 로직 구현(변수 활용, 제어문 등) - 다른 jsp 페이지를 포함. - 날짜, 시간, 숫자의 형식 지정 - 문자열 처리 함수 제공 JSTL 라이브러리 필요(dependency) - 1.2 버전. 라이브러리 구성 1) 코어(core) : 접두어는 'c'. 변수, 제어문 등 포함. uri - http://java.sun.com/jsp/jstl/core 2) 포맷(format) : 접두어는 'fmt'. 출력형식 지정 uri - http://java.sun.com/jsp/jstl/fmt 3) 함수(functions) : 접두어는 'fn'. 기타.. uri - http://java.sun.com/jsp/jstl/functions 페이지에 .. 2023. 5. 10.
5월 10일 (1) Spring - JSP 초간단 계산기 계산기 Num 1 : Num 2 : + - * / % JSP 페이지 구성요소 1) 지시자(Directive) JSP 페이지에 대한 설정 정보를 지정할 때 사용 - page : 기본적으로 필요한 지시자, 문서 타입이나 라이브러리를 포함하도록 지시 - taglib : 태그라이브러리, jstl을 사용하기 위한 지시자, prefix, url 두가지 - include : 다른 jsp 페이지를 포함하여 하나의 페이지를 작성할 때 사용하는 지시자 헤더부분에 넣으라고 지시할 수 있는 지사자, 잘 사용하지 않는다. 2) 스크립트릿(Scriptlet) 자바 코드 작성 영역, '' 사이에 작성 3) 선언부(Declaration) 메소드 작성 영역, '' 사이에 작성 4) 표현식(Expression) 변수 값 .. 2023. 5. 10.