728x90

분류 전체보기 224

JSP 정의 및 기본 구조와 문법

JSP(Java Server Pages)란?서블릿은 기본적으로 자바 코드인데 결과로 보여줄 HTML 코드를 일일이 자바로 생성 및 조합하다보니 너무 많은 코드가 필요한 단점이 있다. 그래서 HTML을 기본으로 하고 필요한 부분만 자바 코드를 삽입하는 형태인 JSP가 탄생하게 되었다.JSP는 동적인 웹 페이지를 개발하기 위한 웹 프로그래밍 기술이다. 이름에서처럼 자바 언어를 사용하여 서버 측에서 웹 페이지들을 생성해 웹 브라우저로 전송해준다. 자바를 서버 개발 언어로 자리 잡게 한 일등공신이다.위의 그림은 JSP 파일을 서블릿으로 변환하여 서블릿을 실행하는 방식이다. JSP와 서블릿은 용도에 따라 더 유리한 기술을 골라 사용할 수 있다. JSP는 클라이언트에 보여지는 결과 페이지를 생성할 때 주로 쓰이며,..

Language/Etc. 2024.06.01

Servlet 정의 및 기본 구조와 문법

서블릿(Servlet)이란?웹을 동적으로 만들기 위해서 옛날에는 자바 애플릿(Applet)을 사용했다. 자바 애플릿은 웹에서 실행되도록 설계된 자바 애플리케이션을 통째로 웹 브라우저로 전송한 후, 자바 가상 머신을 탑재한 웹 브라우저가 이를 실행하는 방식으로 구동된다. 하지만 속도, 보안, 유연성 등에서 한계가 있어서 서버 측에서 실행되는 서블릿(Servlet)이 등장했다.서블릿이란 클라이언트의 요청을 받으면 서버에서 처리한 후, 응답으로는 결괏값만 보내주는 구조다. 아래 동적 웹페이지의 전처리 부분을 서블릿이 담당하는데, 서블릿은 자바 파일(.java)을 컴파일한 클래스 파일(.class) 형태이며, 이를 실행하고 관리해주는 런타임을 서블릿 컨테이너라고 한다. 대표적인 서블릿 컨테이너가 바로 아파치 톰..

Language/Etc. 2024.06.01

[SQLD] 관리구문 - DML, DDL, DCL, TCL

DMLDML이란? DML은 Data Manipulation Language란 의미로, DDL에서 정의한 대로 데이터를 입력하고, 입력된 데이터를 수정, 삭제, 조회하는 명령어이다.INSERT테이블에 데이터를 입력하는 명령어INSERT INTO 테이블명 (컬럼명, 컬럼명2) VALUES (데이터1, 데이터2);INSERT INTO 테이블명 VALUES (전체 컬럼에 입력될 데이터 리스트);명시되지 않은 컬럼에는 NULL 값이 입력되는데, PK와 같이 NOT NULL 제약조건이 걸린 컬럼에는 NULL 값이 입력될 수 없으니 주의해야 한다.전체 컬럼에 대한 데이터가 테이블의 컬럼 순서대로 빠짐없이 나열되어야 하는데, 순서가 바뀌어 데이터 유형이 맞지 않거나 누락된 데이터가 생기지 않도록 주의해야 한다.UPDA..

Data/Sql 2024.05.24

[SQLD] SQL 활용 - 서브쿼리, 뷰, 집합연산자, 그룹함수, 윈도우함수, Top-N 쿼리, 계층쿼리

서브쿼리(Subquery)서브쿼리란 하나의 쿼리 안에 존재하는 또 다른 쿼리이다.SELECT 절 : 스칼라 서브 쿼리(Scalar Subquery). 주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분 위치에 사용할 수 있다. 컬럼 대신 사용되므로 반드시 하나의 값만 반환해야 하며 그렇지 않은 경우 에러를 발생시킨다.FROM 절 : 인라인 뷰(Inline View) - FROM 절 등 테이블 명이 올 수 있는 위치에 사용 가능하다.WHERE 절, HAVING 절 : 중첩 서브쿼리(Nested Subquery)중첩 서브쿼리 분류메인쿼리와의 관계에 따른 분류비연관 서브쿼리 : 서브쿼리 내에 메인쿼리의 컬럼이 존재하지 않는다.연관 서브쿼리 : 서브쿼리 내에 메인쿼리의 컬럼이 존재한다.반환하는 데이터 ..

Data/Sql 2024.05.23

[SQLD] SQL 기본 - Select, Where, Group by, Order by, Join, 함수들

관계형 데이터베이스란?RDB라고 불리는 관계형 데이터베이스는 말 그대로 관계형 데이터 모델에 기초를 둔 데이터베이스이다.관계형 데이터베이스에서의 설계는 모든 데이터를 2차원 테이블 형태로 표현한 뒤 각 테이블 간의 관계를 정의하는 것으로 시작된다.RDBMS는 이러한 RDB를 관리 및 감독하기 위한 시스템이다.Oracle, SQL Server(MMSQL), MySQL, MariaDB, PostgreSQL 등이 이에 속한다.TABLE관계형 데이터베이스는 모든 데이터를 2차원 테이블 형태로 표현한다.세로 열을 컬럼(Column)이라고 하고, 가로 행을 로우(Row)라고 한다.테이블은 관계형 데이터베이스의 기본 단위이고 일반적으로 데이터베이스는 여러 개의 테이블로 구성된다.SQLSQL은 관계형 데이터베이스에서 ..

Data/Sql 2024.05.23

[SQLD] 데이터 모델과 SQL - 정규화, 반정규화, 트랜잭션, NULL

정규화(Normalization)란?데이터의 정합성(데이터의 정확성과 일관성을 유지하고 보장)을 위해 엔터티를 작은 단위로 분리하는 과정이다.정규화를 할 경우 데이터 조회성능은 처리조건에 따라 향상되는 경우도 있고 저하되는 경우도 있지만, 입력, 수정, 삭제 성능은 일반적으로 향상된다고 볼 수 있다.적잘한 정규화는 성능상 이롭지만 지나친 정규화는 오히려 성능 저하를 일으킬 수 있다.제1정규형모든 속성은 반드시 하나의 값만 가진다.유사한 속성이 반복되는 경우도 1차 정규화의 대상이 된다.원자값이 아닌 도메인을 분해한다.제2정규형엔터티의 모든 일반속성은 반드시 모든 주식별자에 종속되어야 한다.주식별자가 단일식별자가 아닌 복합식별자인 경우 일반속성이 주식별자의 일부에만 종속될 수 있는데 이런 경우 2차 정규화..

Data/Sql 2024.05.23

[SQLD] 데이터 모델링의 이해 - ERD, 엔티티, 속성, 관계, 식별자

모델링(Modeling)이란? 데이터베이스의 모델링은 ‘현실 세계를 단순화하여 표현하는 기법’이다.모델링이 갖춰야 할 조건현실 세계를 반영해야 한다.단순화하여 표현해야 한다.관리하고자 하는 데이터를 모델로 설계한다.모델링의 특징추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현한 것, 아이디어나 개념을 간략하게 표현하는 과정단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현하는 과정명확화(Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술하는 과정모델링의 세 가지 관점데이터 관점 : 어떤 데이터들이 업무와 얽혀있는지, 그리고 그 데이터 간에는 어떤 관계가 있는지에 대해서 모델링 하는 방법프로세스 관점 : 이 업무가 실제로 처..

Data/Sql 2024.05.23

Java Swing 가중치 랜덤 복권 번호 생성기 프로젝트 회고

14일 동안 JAVA, JDBC랑 오라클 PL/SQL만을 사용해서 자바 스윙 프로젝트를 만들라는 미션을 받았다자바로 하는 프로젝트는 처음이라 과연 내가 할 수 있을까 걱정이 많았는데, 언어는 다르지만 이전에 자바스크립트로 프로젝트를 완성했던 경험이 많이 도움이 되었다.첫 프로젝트 때는 끝내는 것에만 급급했는데 이번 프로젝트는 회고를 한번 해보기로 했다.  일확천금의 꿈도 없지 않아 있지만, 복권 기금이 소외 계층 복지에 사용된다는 말을 듣고 그때부터 취미삼아 복권을 사기 시작했다.그래서 매주 복권을 사는데 수학적으로 보자면 숫자가 뽑히는 확률은 동일하겠지만 복권 당첨 숫자들을 보면 또 뽑힌게 또 뽑히는 것 같았다.그래서 언제 시간되면 기당첨된 복권 번호 기반 가중치 알고리즘을 적용한 로또 복권 번호 생성..

[Java] 자바 java.time 패키지

자바에서의 날짜 및 시간 처리JDK 1.0에서는 Date 클래스를 사용하여 날짜에 관한 처리를 수행했지만, Date 클래스는 현재 대부분의 메소드가 사용을 권장하지 않고(deprecated) 있다.JDK 1.1부터 새롭게 제공된 Calendar 클래스는 날짜와 시간에 대한 정보를 손쉽게 얻을 수 있었지만, Calendar 클래스는 다음과 같은 문제점을 가지고 있다. 따라서 많은 자바 개발자들은 Calendar 클래스뿐만 아니라 더 나은 성능의 Joda-Time이라는 라이브러리를 함께 사용해 왔다.Calendar 인스턴스는 불변 객체(immutable object)가 아니라서 값이 수정될 수 있다.윤초(leap second)와 같은 특별한 상황을 고려하지 않는다.Calendar 클래스에서는 월(month)..

Language/Java 2024.04.28

[Java] 자바 스트림 API - Optional 클래스

java.util.Optional 클래스Optional 클래스는 Integer나 Double 클래스처럼 'T'타입의 객체를 포장해 주는 래퍼 클래스(Wrapper class)다. 따라서 Optional 인스턴스는 모든 타입의 참조 변수를 저장할 수 있다.Optional 객체를 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있다. 즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 된다.Optional 객체의 생성of() 메소드나 ofNullable() 메소드를 사용하여 Optional 객체를 생성할 수 있다.of() 메소드는 null이 아닌 명시된 값을 가지는 Optional 객체를 반환한다. 만약 of() 메소드를..

Language/Java 2024.04.28
728x90