'a' 소스폴더에 'a.b.c' 패키지 생성' . '를 통한 약식 표현으로 폴더가 순서대로 생성된다.생성한 패키지안에 'A' 클래스 생성bin 폴더의 패키지 폴더에 class 파일이, src 폴더의 패키지 폴더엔 java 파일이 생성된 것을 볼 수 있다.❤️🔥❤️
기본 표현 10진수: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 2진수: 0, 1 8진수: 0, 1, 2, 3, 4, 5, 6, 7 16진수: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14),
계속 변하는 값, 그 값을 저장하는 공간, 값이 특정지어지지 않아 임의의 값을 가질 수 있는 문자❤️🔥❤️🔥 대입과 초기화는 다르다! 대입은 공간이 만들어지고 나중에 값이 들어오는 것, 초기화는 공간을 만들자마자 값이 들어오는 것, 대입(assignment)은
byte(1Byte —> 8bit / 8개의 단자수)short(2Byte —> 16bit / 16개의 단자수)int(4byte —> 32bit / 32개의 단자수)long(8byte —> 64bit / 64개의 단자수)양수의 표현에 0이 포함된다 ex) byte 자료형
변하지 않는 수final 선언변하지 않는 값을 반복 사용할 때final 선언으로 한 번 초기화, 대입이 인정된다. 다른 리터럴 대입 시 컴파일 오류가 발생한다. —> 변수의 기능이 상실되고 상수가 된 것상수 선언 MAX_NUM이라는 문자 상수 생성문자 상수 (文字常數)
항(operand): 연산에 사용되는 값연산자(operator): 항을 이용하여 연산하는 기호변수에 다른 변수나 값을 대입하는 연산자이항 연산자 중 우선 순위가 가장 낮은 연산자왼쪽 변수 = 오른쪽 변수(또는 식, 값)❤️🔥같다가 아니라 메모리공간에 저장된 라이트밸
조건식에 따라 다른 실행이 이루어지는 문법수행문이 하나일 경우 {} 중괄호 생략 가능👉수행문이 두 개 이상일 때 중괄호 생략시 컴파일 오류if만 단독 사용 가능조건이 여러 개일 때 사용하나의 상황에 대한 조건이 여러개로 나뉘고 각 조건에 다른 수행이 이루어져야 할 경
주어진 조건에 맞는 동안(true) 지정된 수행문을 반복적으로 수행하는 제어문조건이 맞지 않으면 반복하던 수행을 멈추게 됨조건은 주로 반복 횟수나 값의 비교의 결과에 따라 true, false 판단 됨수행문을 수행하기 전 조건을 체크하고 그 조건의 결과가 true인 동
중첩반복문 반복문 내부에 또다른 반복문 사용 여러 겹으로 반복문을 겹쳐서 구현 가능 외부 반복문과 내부 반복문 간의 변수 값 변화에 유의하여 구현해야 함
의사나 행위가 미치는 대상 (사전적 의미)구체적, 추상적 데이터의 단위 (학생, 회원, 생산, 주문, 배송) 절차 지향 프로그래밍 = 시간이나 사건의 흐름에 따른 프로그래밍 방식( ex: 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다 -> 요금을 지불 한다
멤버 변수 -> 객체의 속성인스턴스 메소드 -> 객체의 기능클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨가령, 학생의 클래스에서 생성된 각각의 인스턴스는 각각
클래스 외부에서 클래스의 멤버 변수, 메소드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드private: 같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계의 클래스에서도 접근 불가)default: 같은 패키지 내부에서만 접근 가능(상속 관계라도 패키지가
인스턴스 자신의 메모리를 가리킴생성자에서 또다른 생성자를 호출할 때 사용자신의 주소(참조 값)를 반환 함클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 갖는 키워드클래스에 생성자가 여러개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음
여러 인스턴스에서 공통으로 사용하는 변수여러 인스턴스가 공유하는 기준 값이 필요한 경우학생마다 새로운 학번 생성카드회사에서 카드를 새로 발급할 때마다 새로운 카드 번호를 부여회사에 사원이 입사할 때 마다 새로운 사번이 필요한 경우인스턴스가 생성될 때 만들어지는 변수가
프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메소드를 활용하여 구현private Company() { … }클래스 내부에 유일한 private 인스턴스 생성private static Company instance =
동일한 자료형의 순차적 자료 구조인덱스 연산자 \[]를 이용하여 빠른 참조가 가능물적 위치와 논리적 위치가 동일배열의 순서는 0부터 시작자바에서는 객체 배열을 구현한 ArrayList를 많이 활용한다.배열 선언하기int\[] arr1 = new int10;int arr
기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당되지만, 객체 배열은 요소가 되는 객체의 주소가 들어갈(4바이트, 8바이트) 메모리만 할당되고(null) 각 요소 객체는 생성하여 저장해야 함System.arrayCopy(src, srcPos, dest,
새로운 클래스를 정의할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현함이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함상속하는 클래스 : 상위 클래스, parent cla
하위 클래스를 생성하면 상위 클래스가 먼저 생성된다.클래스를 상속 받은 경우 하위 클래스의 생성자에서는 반드시 상위 클래스의 생성자를 먼저 호출한다.하위 클래스에서 가지는 상위 클래스에 대한 참조 값super()는 상위 클래스의 기본 생성자를 호출한다.하위 클래스에서
RESULT SET : SELECT를 통해서 조회된 결과물 (조회된 행들의 집합)컬럼 별칭 : DISTINCT :비교 연산자 :BETWEEN A AND B :LIKE :연산자 우선순위 :()>산술 연산자>연결연산자>비교연산자>IS NULL, LIKE, IN>BETWEE
Apache Tomcat 다운 받는다.(8.5버전 받았다.)이클립스로 설정할 것이므로 서버를 설정할 새로운 폴더를 만들고 실행할 때 그곳으로 경로 설정한 뒤 실행Project Explorer에 새로운 서버를 만든다.(server를 찾고 next, 다운 버전에 맞게 선택
일단 Servlet은 웹에서 들어오는 요청을 처리하는 작은 서버 프로그램이다.생성한 서버 프로젝트안에 src/main/java 폴더안에 class를 생성하고 HttpServlet을 상속하도록 하고, doGet 메소드를 오버라이딩 한다.그리고 생성된 class가 웹의 어
Servlet을 통해 웹에서 요청이 들어오면 그에 따른 반응을 보내줄 수 있다.1) 먼저 아이디와 비밀번호를 제출할 수 있는 이런 웹 페이지가 있다.2) 아이디와 비밀번호를 제출하면 그에 따라 반응하는 Servlet을 만들고 PrintWriter 클래스와 doGet메소
저번 수업까지 사용자의 요청에 따라 Servlet을 통해 요청에 반응하는 서버 프로그램을 만들었다. 하지만 Servlet을 통해 사용자에게 새로운 페이지로 반응을 보낼 경우 효율이 좋지 않았다. PrintWriter 객체를 생성하고 println 메소드를 통해 한줄 한
12/13 저번 수업엔 JSP 사용법까지 배웠다. 오늘은 Attribute, Filter, ServletContext, Session, Cookie 등을 배웠다. 한번에 다 정리하면 내용이 길어질 것 같아 나눠서 정리한다.간단히 사용자가 접근하는 페이지를 만들고 그에
LENGTH(컬럼 | 문자값) -> 글자 수 반환LENGTHB(컬럼 | 문자값) -> 글자의 바이트 수 반환\*한글 3byte, 영어/숫자/특수문자 1byteINSTR(컬럼 |'문자값', '문자'\[, POSITION, OCCURRENCE])지정한 위치부터 지정된 숫자
일단,, JSP도 Servlet이다..? JSP 페이지를 요청하게 되면 Jasper가 jsp파일을 java파일로 만들고 실행파일인 class파일로 변환되어 사용자에게 응답하게 된다.1) JSP에서 주석은 html, java, jsp의 주석으로 나눌 수 있다. html과
\-웹페이지 전체를 다시 로딩하지 않고, 웹페이지의 일부분만을 갱신할 수 있다.즉, Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다.1) 단순하게 생각하면 그렇게 어렵지 않을 수 있다. 일단 Ajax를 사용하기
그룹 기준을 제시할 수 있는 구문여러 개의 값들을 하나의 그룹으로 묶어서 처리할 목적으로 사용한다.\*그룹핑되는 컬럼의 속성값으로도 그룹핑할 수 있다.\*여러 컬럼을 그룹핑할 수 있다.그룹에 대한 조건을 제시할 때 사용하는 구문(주로 그룹 함수의 결과를 가지고 비교 수
두 개 이상의 테이블에서 데이터를 조회하고자 할 때 사용하는 구문이다.여러 개의 테이블을 조인하는 경우에 사용한다.테이블 간의 JOIN 시 일치하지 않는 행도 포함시켜서 조회가 가능하다.단, 반드시 기준이되는 테이블(ANSI), 컬럼(오라클)을 지정해야 한다.(LEFT
1) 사용자가 특정 페이지에 경로로 직접 접근하는 경우를 막아야할 때가 있다. 이럴 경우 서버에서 내부로만 접근할 수 있도록 view 페이지들을 WEB-INF 안에 넣어준다. WEB-INF 안에 들어간 페이지들은 사용자가 경로로 직접 접근할 수 없다.(로그인 상태에서
1) MVC 패턴1은 JSP 안에서 데이터를 처리하는 controller, controller에서 view로 데이터를 전달하기 위한 중간 역할의 model, 화면에 보여주는 view가 공존한다. 사용자의 요청을 받은 servlet은 JSP로 그 요청의 데이터를 전달만해
하나의 SQL 문 안에 포함된 또 다른 SQL 문을 뜻한다.메인 쿼리(기존 쿼리)를 보조하는 역할을 하는 쿼리문이다.FROM 절에 서브 쿼리를 제시하고, 서브 쿼리를 수행한 결과를 테이블 대신 사용한다.
데이터 정의 언어로 오라클에서 제공하는 객체를 만들고(CREATE), 변경하고(ALTER), 삭제하는(DROP) 등 실제 데이터 값이 아닌 테이터의 구조 자체를 정의하는 언어로 DB 관리자, 설계자가 주로 사용한다.\*오라클에서의 객체: 테이블, 뷰, 시퀀스, 인덱스,
어젠 mvc 패턴을 적용해 controller에서 기능을 구현하는 Service와 DB에 접근하는 DAO까지의 역할을 나누는 것까지 배웠다. 오늘은 DAO에서 DB에 접근하는 것을 배웠다. 킹론상 어렵게 느껴지지 않았지만 이런 저런 Servlet, JSP 기능들을 많이
데이터 정의 언어로 오라클에서 제공하는 객체를 만들고(CREATE), 변경하고(ALTER), 삭제하는(DROP) 등 실제 데이터 값이 아닌 데이터의 구조 자체를 정의하는 언어로 DB 관리자, 설계자가 주로 사용한다.\*기존 테이블 형태기존 테이블 형태변경 테이블 형태\
데이터 조작 언어로 테이블에 값을 삽입(INSERT)하거나, 수정(UPDATE), 삭제(DELETE)하는 구문이다.테이블에 새로운 행을 추가하는 구문이다.
트랜젝션을 제어하는 언어이다.
SELECT 문을 저장할 수 있는 객체이다.(논리적인 가상 테이블)\*사용자가 생성한 VIEW를 볼 수 있는 테이블컬럼으로 VIEW의 이름, 생성한 VIEW의 SQL 길이, 실제 SQL 등이 들어있다.V_JOB VIEWJOB 테이블V_JOB, JOB 동일하게 UPDA
정수값을 순차적으로 생성하는 역할을 하는 객체이다.
이제 어떻게 보면 웹 개발자가 하는 일들의 기본적인 부분들을 어느정도 배웠다. 사용자가 접근할 페이지를 만들고 사용자의 요청에 따라 데이터를 처리하고 그에 따라 반응할 수 있도록 프로그램을 만들고 그리고 그 프로그램을 위해 필요한 데이터를 저장하도록 DB에 접근하는 과
이전에 블로그에 올리지 않았지만 DB까지 접근하진 않고 사용자가 주문한 피자와 가격을 표시해주는 웹 페이지를 만들어봤다. 이번엔 DB까지 접근하여 주문 내역을 저장하고 주문 내역을 사용자에게 보여주는 페이지를 만들어본다.1) 먼저 프로젝트 폴더에 작성된 파일들을 살펴보
오라클 자체에 내장되어 있는 절차적 언어로 SQL 문장 내에서 변수의 정의, 조건 처리(IF), 반복 처리(LOOP, FOR, WHILE) 등을 지원한다. (다수의 SQL 문을 한 번에 실행이 가능하다.) 변수 및 상수는 일반 타입 변수, 레퍼런스 타입 변
테이블이 INSERT, UPDATE, DELETE 등 DML 구문에 의해서 변경될 경우 자동으로 실행될 내용을 정의해놓는 객체이다.
PL/SQL 문을 저장하는 객체이다. 필요할 때마다 복잡한 구문을 다시 입력할 필요 없이 간단하게 호출해서 실행 결과를 얻을 수 있다. 특정 로직을 처리하기만 하고 결과값을 반환하지 않는다.프로시저와 사용 용도가 비슷하지만 프로시저와 다르게
글자 관련 태그 > > > > > ![](https://images.velog.io/images/aljongjong/post/19267c93-cc82-4996-b8a4-2
표 관련 태그 > > > 영역 관련 태그 > > ![](https://images.velog.io/images/aljongjong/post
저번 시간 request에 담긴 데이터를 EL(Expression Language)을 통해 꺼내오는 것 까지 실습을 했다. 오늘은 배열 객체에 담긴 데이터를 꺼내기 위한 JSTL(Java Standard Tag Library)에 대해 배웠다. 피자 주문 프로젝트에서 J
사용자가 업로드한 파일을 저장하고, 화면에 출력하며, 다운로드 하는 방법을 배웠다.1) 먼저 사용자가 파일을 업로드하는 페이지를 만든다. 파일 업로드를 하기 위해선 인코딩 타입을 변경해주는 enctype 속성을 multipart/form-data로 변경해주어야 한다.
이미지 관련 태그 > > > > ![](https://images.velog.io/images/aljongjong/post/62858e63-1ee1-4bf8-96e5-22
폼 관련 태그 > > > > ![](https://images.velog.io/images/aljongjong/post/25f14371-c53f-4df2-8208-
선택자 > > > ![](https://images.velog.io/images/aljongjong/post/40f50078-7af3-4582-b285-6
텍스트 스타일 > > > > > ![](https://images.velog.io/images/aljongjong/post/b0c5e5c6-ca3e-4e33-be2
레이아웃 스타일 > > > > ![](https://images.velog.io/images/aljongjong/post/7eab5c18-09f9-4885-b4de-5
색상 스타일 >
변형 > > ![](https://images.velog.io/images/aljongjong/post/55c24260-c823-4607-8441-8d5089b15ef5/im
JavaScript > > > ![](https://images.velog.io/images/aljongjong/post/78143d26-0b42-45ca-81fa-a
기본 문법 > > > > ![](https://images.velog.io/images/aljongjong/post/f4c6102a-64da-48ce-8978
배열 > > ![](https://images.velog.io/images/aljongjong/post/b85b5b80-b48c-40ef-8c47-8e8dd88f9a2b/i
함수 > > > > >
내장객체 > > ![](https://images.velog.io/images/aljongjong/post/878f2abe-4692-4ca3-8740-17bb62f535
객체 > > >![](https://images.velog.io/images/aljongjong/post/82b8049c-8795-4c3d-b80d-5b21a1343ce7/
BOM(Browser Object Model) > > >![](https://images.velog.io/images/aljongjong/post/e1c5de26-11fd-
DOM (Document Object Model) > > >
이벤트 > > > ![](https://images.velog.io/images/aljongjong/post/917e3ce5-3b11-421e-bb2f-0cbdf2c936
정규표현식 > > > ![](https://images.velog.io/images/aljongjong/post/468c6c93-1a06-40f9-a1a1-3a4eaba06
오늘 드디어 spring을 나갔다. 뭐 특별하게 한 것 없고, 설치, 설정 정도만 했다. 뭐가 있을까..1) 먼저 기존 프로젝트 파일에서 라이브러리 jar파일을 직접 다운 받아서 폴더안에 넣어줘야 했지만, spring을 사용하면 dependency 태그만 pom.xml
오늘은 페이지를 생성하고 페이지 매핑을 위한 Dispatcher Servlet을 만들어 연동하는 것을 배웠다.1) 먼저 접근할 페이지를 만들고 그 페이지에 접근할 수 있도록 Dispatcher Servlet을 만들어 만든 페이지로 매핑을 해준다.2) 1번에서 디스패쳐
get, post 방식 처리만 간단히 배워서 짧게 정리해본다.1) 조금 단계를 뛰어 넘은 것 같지만..저번 글에선 @RequestMapping으로 get 방식(default) 처리만 다뤘었다. 아래의 Dispatcher Servlet을 살펴보면 주석 처리된 @Reque
오늘 사용자의 요청과 함께 보내진 데이터를 컨트롤러에 받는걸 배웠다. 아 그리고 이전 Spring 복습글들에 내가 Dispatcher Servlet에 대해 잘못알고 있었던게 있다. Dispatcher Servlet이 우리가 만드는 controller servlet인줄
오늘은 인코딩을 필터로 처리하는 방법도 배웠다.1) 기존 servlet에서 필터 처리를 서블릿 내에서 처리하거나, filter 인터페이스를 implements하는 필터 서블릿을 만들어 모든 요청에 대해 처리하도록 만들었었다. spring에선 web.xml에서 인코딩 필
오늘은 DB에 데이터 INSERT 하는 법을 배웠다. 초기 설정들이 많고, 헷갈려서 반복 숙달이 필요할 것 같다.1) 먼저 pom.xml에 jdbc 연결도구들을 등록해줘야한다. spring-jdbc은 pom.xml 상단에 위치한 spring-webmvc dependen
오늘은 어제 이어서 mybatis에 대해서 배웠다. 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는
어제는 사용자의 요청과 함께 보내진 값을 DB에 INSERT하는 것을 배웠고, 오늘은 DB에 있는 데이터를 SELECT해서 가지고 온 후, 화면으로 보내는 것을 배웠다.1) 먼저 mapper.xml에 SELECT 쿼리문을 추가해준다. select는 DB에서 데이터를 가
이전에 배웠던 insert와 select를 이용해 회원가입과 로그인, 그리고 로그인한 유저의 정보를 세션에 저장하는 것 까지 배웠다.1) 먼저 INSERT를 통해 회원가입을 할 수 있는 메소드, mapper.xml 쿼리문 등을 작성해준다. 그리고 회원가입 페이지에서 가
오늘은 DB 테이블에 등록되어있는 데이터를 검색하고 이를 위해 쿼리문에 동적 SQL 사용하는 법을 배웠다.1) 먼저 회원 검색과 조회를 할 수 있는 페이지를 만들고 아이디, 닉네임으로 검색할 수 있게 select option으로 드롭앤다운을 만들어준다.2) 그리고 ma
오늘은 회원가입시 비밀번호 암호화해서 DB에 저장, 로그인시 DB에 암호화된 비밀번호와 사용자가 입력한 비밀번호를 비교하는 matches, controller의 기능을 분산할 service, dto 서블릿을 spring container에 등록할 @Component에
오늘은 어제의 연장선쯤이랄까.. controller에서 처리하던 service, dao를 나누고 CRUD 작업을 진행했다. 간단히만 정리해보려한다1) 게시판에 글을 작성하고, 조회하고, 수정하고, 삭제하는 로직을 만든다. 먼저 글을 작성하기 위해 작성 페이지를 만들고
어제는 파일 업로드에 대해 배웠다. 기존 servlet/jsp에서는 파일을 업로드 하는 과정이 상당히 복잡했는데, spring을 사용하면 매우 간단하다.1) 먼저 파일 업로드에 필요한 dependency를 maven repository에서 추가해준다. 그리고 servl
어제 파일 업로드에 이어 오늘은 파일 다운로드를 배웠다. 여러가지 방법이 있지만 Response 방식과 Spring(ResponseEntity) 방식에 대해 배웠다. 1) 먼저 Response 방식을 살펴본다. url로 사용자가 다운받으려는 파일번호를 보내면 다운로드
1) 먼저 filter 사용의 기본 클래스 구성은 기존 servlet/jsp와 spring의 차이는 없다. javax.servlet.Filter 인터페이스를 구현하고 추상메소드들을 오버라이딩 해주면 된다. 그리고 첫 번째 방법으로 filter 클래스위에 @WebFilt
@ControllerAdvice를 사용해서 예외처리를 할 수 있다.1) ControllerAdvice 역할을 해줄 클래스를 생성하고 @ControllerAdvice를 사용한다. 속성으로 basePackages로 package를 지정하거나 annotations 속성에 a
1) 이미지 input file 태그로 선택했을시 선택한 이미지를 웹페이지에서 미리보는 script문을 만들어본다. 먼저 html로 이미지 파일을 선택할 input file 태그와 미리보기 이미지가 들어가 img 태그를 만들어준다.2) 그리고 미리보기를 실행할 scri
AOP는 filter, interceptor와 다르게 controller, service, dao servlet 사이 중간중간 위치하여 작동한다.1) AOP를 사용하기 위해 먼저 pom.xml에 AOP, AspectJ 관련 dependency를 추가해준다. 그리고 ro