전체 글

전체 글

    [프로그래머스-Level 03] 종이접기(c++)

    문제 설명 직사각형 종이를 n번 접으려고 합니다. 이때, 항상 오른쪽 절반을 왼쪽으로 접어 나갑니다. 다음은 n = 2인 경우의 예시입니다. 먼저 오른쪽 절반을 왼쪽으로 접습니다. 다시 오른쪽 절반을 왼쪽으로 접습니다. 종이를 모두 접은 후에는 종이를 전부 펼칩니다. 종이를 펼칠 때는 종이를 접은 방법의 역순으로 펼쳐서 처음 놓여있던 때와 같은 상태가 되도록 합니다. 위와 같이 두 번 접은 후 종이를 펼치면 아래 그림과 같이 종이에 접은 흔적이 생기게 됩니다. 위 그림에서 ∨ 모양이 생긴 부분은 점선(0)으로, ∧ 모양이 생긴 부분은 실선(1)으로 표시했습니다. 종이를 접은 횟수 n이 매개변수로 주어질 때, 종이를 절반씩 n번 접은 후 모두 펼쳤을 때 생기는 접힌 부분의 모양을 배열에 담아 return ..

    [21] 기본적인 웹 게시물 관리 - 검색처리

    1. 검색 기능과 SQL 게시물의 검색 기능은 다음과 같이 분류 가능하다. 제목/내용/작성자와 같이 단일 항목 검색 제목 or 내용, 제목 or 작성자, 내용 or 작성자, 제목 or 내용 or 작성자와 같은 다중 항목 검색 검색 항목은 제목/내용/작성자와 같은 단일 항목 검색과 제목 or 내용과 같이 복합적인 항목으로 검색하는 방식이 존재한다. 게시물의 검색이 붙으면 가장 신경 쓰이는 부분은 역시 SQL 쪽이다. 오라클은 페이징 처리에 인라인뷰를 이용하기 때문에 실제로 검색 조건에 대한 처리는 인라인뷰 내부에서 이루어져야 한다. 단이 항목의 검색은 검색 조건에 따라서 칼럼이 달라지고, LIKE 처리를 통해서 키워드를 사용하게 된다. 만일 2페이지에 해당하는 데이터를 '제목'으로 검색하고 키워드는 'Te..

    [20] 기본적인 웹 게시물 관리 - 페이징 화면 처리

    URL의 파라미터를 이용해서 정상적으로 원하는 페이지로 이동하는 것을 확인했다면, 화면 밑에 페이지 번호를 표시하고 사용자가 페이지 번호를 클릭할 수 있기 처리한다. 페이지를 보여주는 작업은 다음과 같은 과정을 통해서 진행한다. 브라우저 주소창에서 페이지 번호를 전달해서 결과를 확인하는 단계 JSP에서 페이지 번호를 출력하는 단계 각 페이지 번호에 클릭 이벤트 처리 전체 데이터 개수를 반영해서 페이지 번호 조절 페이지 처리는 단순히 링크의 연결이기 때문에 어렵지는 않지만, 목록페이지에서 조회 페이지, 수정 삭제 페이지 까지 페이지 번호가 계속해서 유지되어야만 하기 때문에 끝까지 신경 써야 하는 부분들이 많은 편이다. 1. 페이징 처리할 때 필요한 정보들 화면에 페이징 처리를 하기 위해서는 우선적으로 여러..

    Kotlin 설치 및 실습 환경 구축하기

    - 자바 JDK 설치하기 OpenJDK인 Zulu를 설치한다. 코틀린은 JDK SE 9 까지 지원하지만 안정적인 동작을 위해 Zulu의 JDK SE 8을 설치한다. 1. https://www.zul.com/downloads/zulu/ 링크에서 msi 파일을 다운로드 한다. 불러오는 중입니다... 2. 다운로드한 설치파일 zulu8.xx.msi를 실행하면 설치가 진행된다. 이때 next 버튼을 한번 눌러 나오는 화면에서 JDK가 설치되는 경로를 꼭 확인한다. 만약 JDK를 설치한 적이 있다면 이전 버전을 삭제하고 진행한다. 3. 윈도우 운영체제의 경우 윈도우 환경 변수인 PATH에 JDK가 설치된 위치를 등록해야 한다. 4. JAVA_HOME에 Zulu 경로를 등록하고 path에 %JAVA_HOME%\bi..

    [19] 기본적인 웹 게시물 관리 - MyBatis와 스프링에서 페이징 처리

    MyBatis는 SQL을 그대로 사용할 수 있기 때문에 인라인뷰를 이용하는 SQL을 작성하고, 필요한 파라미터를 지정하는 방식으로 페이징 처리를 하게 된다. 여기서 신경 써야 하는 점은 페이징 처리를 위해서는 SQL을 실행할 때 몇 가지 파라미터가 필요하다는 점이다. 페이징 처리를 위해서 필요한 파라미터는 1) 페이지 번호, 2) 한 페이지당 몇 개의 데이터를 보여줄 것인지가 결정되어야만 한다. 페이지 번호와 몇 개의 데이터가 필요한지를 별도의 파라미터로 전달하는 방식도 나쁘지는 않지만, 아예 이 데이터들을 하나의 객체로 묶어서 전달하는 방식이 나중을 생각하면 좀 더 확장성이 좋다. 1) org.zerock.domain 패키지에 Criteria 이름의 클래스를 작성한다. (이는 검색의 기준을 의미한다.)..

    [18] 기본적인 웹 게시물 관리 - 오라클 데이터베이스 페이징 처리 2

    3-2. 힌트 사용 문법 select 문을 작성할 때 힌트는 잘못 작성되어도 실행할 때는 무시되기만 하고 별도의 에러는 발생하지 않는다. 우선 힌트를 사용할 때에는 다음과 같은 문법을 사용한다. select /*+ Hint name (param) */ colum name, ....... from table_name 힌트 구문은 /*+ 로 시작하고 */ 로 마무리된다. 힌트 자체는 SQL로 처리되지 않기 때문에 위의 그림처럼 뒤에 칼럼명이 나오더라도 별도의 ',' 로 처리되지 않는다. 3-3. FULL 힌트 힌트 중에는 해당 select 문을 실행할 때 테이블 전체를 스캔할 것으로 명시는 FULL 힌트가 있다. FULL 힌트는 테이블의 모든 데이터를 스캔하기 때문에 데이터가 많을 때는 상당히 느리게 실행된..