📝 TIL

    [TIL] JSP로 CRUD 구현

    ✍ Today I Learned [Log 템플릿 설정] SLF4J로 로깅하기 위해 다음의 코드를 템플릿으로 설정한다. Window → Prdferences → Java → Code Style → Code Templates → Code New Java files → Edit ${filecomment} ${package_declaration} import org.slf4j.Logger; import org.slf4j.LoggerFactory; ${typecomment} ${type_declaration} Class body → Edit private static Logger log = LoggerFactory.getLogger(${type_name}.class); Java 파일을 생성하면 다음과 같이 템플릿..

    [TIL] JSP 개발 환경 설정

    ✍ Today I Learned 본격적으로 jsp 웹페이지를 만들기 전에 개발 환경 설정을 해주었다. jsp는 다양한 방식으로 개발하기 때문에 개발자마다 아키텍처는 다를 수 있다. [환경 설정] 이클립스의 Workspace를 jsp 폴더로 변경한다. 가장 먼저 인코딩 설정을 한다. Window → Preferences → encoding 검색 → Workspace와 CSS Files, HTML Files, JSP Files 전부 utf-8로 변경 웹브라우저 설정을 해준다. General → Web Browser → Use external web browser 선택, Chrome 선택 컴파일러 버전을 맞춰준다. Java → Compiler → 1.8로 변경 톰캣을 연결해준다. Server → Runtime..

    [TIL] MySQL 쿼리 문제 풀이

    ✍ Today I Learned 지금까지 배운 SQL내용을 토대로 쿼리 문제를 풀어보았다. ALIAS 별칭을 부여하면서 띄어쓰기를 하려면 따옴표 필수! 필드에 중복되는 값을 한 번만 선택하고 싶다면 DISTINCT 키워드를 사용한다. (집계 함수 안에서도 사용 가능) 인수분해 공식 na + nb = n(a+b) DATE_FORMAT(date, '%W') - 요일을 문자열로 반환(Sunday부터 Saturday) DAYOFWEEK()는 일요일부터 시작(일요일=1, 토요일=7) / WEEKDAY()는 월요일부터 시작(월요일=0, 일요일=6) 숫자에 세 자리 구분 기호를 출력하려면 FORMAT 함수 이용 FORMAT(number, decimal_places) - number를 '#,###,###.##' 형식으..

    [TIL] MySQL 내장함수, GROUP BY, HAVING

    ✍ Today I Learned 날짜 함수 관련해서는 정답이 없다. 어떤 포맷팅으로 기록하고, 무엇을 기록할 것이냐에 따라 달라진다. 모든 걸 DB에서 처리할 수 없고, 오히려 속도는 프로그래밍에서 하는 게 빠르지만 문제는 트래픽 양이다. 트래픽 양 = 호스팅 비용 = 돈 이기 때문에.. MySQL의 IFNULL() 함수는 Oracle의 NVL() 함수와 동일하게 작동한다. (nvl = null value) ADDDATE() vs DATE_ADD() 차이점은? ADDDATE()는 두 번째 인수로 INTERVAL value addunit 대신 추가할 일수만 지정하는 days를 사용할 수 있다! 즉 ADDDATE(date, 3) 이런 식으로 사용 가능하다. 참고자료 CASE문 뒤쪽으로 비교할 value를 넣..

    [TIL] MySQL, DBeaver, SELECT, WHERE, ORDER BY

    ✍ Today I Learned 관계형 데이터베이스(relational database)란? 데이터베이스의 한 종류로, 키(key)와 값(value)의 관계를 나타내는 테이블(table)로 이루어져 있다. 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다. SQL(Structured Query Language)이란? 구조적 질의 언어의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어이다. SQL을 다루기 위한 여러 프로그램 중 DBeaver를 설치하였다. 기본세팅으로 모든 인코딩을 UTF-8로 설정하고, 현재 작동중인 데이터베이스에 연결한 후 SQL편집기(단축키 F3)를 열어 SQL문을 작성한다. 작성 후 세미콜..

    [TIL] JSP, 톰캣, 서블릿

    ✍ Today I Learned JSP란(Java Server Pages)란? Java 언어를 기반으로 하는 Server Side 스크립트 언어를 의미한다. HTML 코드에 Java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 애플리케이션 도구이다. JSP를 실행시키기 위한 Servlet 엔진이 필요하다. 서블릿(Servlet)이란? 클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 Java 인터페이스이다. 간단한 메서드 호출만으로 웹 요청과 응답의 흐름을 체계적으로 다룰 수 있는 기술이다. 톰캣(Tomcat)이란? JSP와 Servlet을 구동하기 위한 서블릿 컨테이너이자 웹 서버이다. Java EE 기반으로 만들어졌다. (Port:8080 → 8088) 브라우저와 자바 애플리케이..

    [TIL] Java 주소록, 상품관리, 호텔관리 시스템

    ✍ Today I Learned [주소록 관리 시스템] SelectOne mysql> select * from address where name = ‘이름’; pk(=primary key 빈 값이 없고 중복되지 않는 키)로 검색하지 않는 경우 출력 형태가 단일 객체 아님을 주의하자. where은 조건절로 테이블 내에 해당하는 이름을 검색한다. 입력받은 이름을 데이터베이스로 넘겨서 해당하는 데이터를 리턴 받는다. list는 여러 개의 데이터를 리턴 받고, detail은 한 개의 데이터만 리턴 받는다. Delete mysql> delete from address where name = ‘이름’; 입력받은 이름을 데이터베이스로 넘겨서 해당 데이터를 삭제한 후, 결과를 true or false로 리턴 받는다. ..

    [TIL] Java Enum, MySQL 개발 환경 설정, JDBC

    ✍ Today I Learned [Enum] 열거형(enum)이란? 관련 있는 상수들의 집합이다. class나 interface 대신 enum 키워드를 사용하여 정의하고, 콤마로 상수를 구분한다. 이때 상수는 대문자를 사용한다. public enum Directions { EAST, WEST, SOUTH, NORTH } 정의된 enum은 다음과 같은 방법으로 사용한다. Directions east = Directions.EAST; enum의 상수값은 기본적으로 0부터 시작하고, 불규칙한 값을 상수값으로 설정하고 싶으면 상수의 이름 옆에 괄호(())를 추가한 뒤, 그 안에 원하는 상수값을 적으면 된다. 이때 불규칙한 특정 값을 저장할 수 있는 인스턴스 변수와 생성자를 별도로 추가해야만 한다. values(..