728x90

[ JAVA ] 85

[ Spring ] 관리자 페이지 목록 구현

프로젝트 구조 오늘은 프로젝트할 때 꼭 필요한 관리자 페이지 목록을 구현해보려 합니다. 기능 위주라서 폼은 간단하게 구현합니다. Admin Table 생성 관리자 테이블을 생성해서 각 칼럼의 데이터를 추가합니다. create table admin ( userid varchar2(50) not null, passwd varchar2(50) not null, name varchar2(50) not null, email varchar2(100), join_date date default sysdate, primary key(userid) ); insert into admin (userid, passwd, name ) values ('admin','1234','관리자'); commit; 마지막에 꼭 커밋해주기!..

[ Spring ] 장바구니 기능 구현

프로젝트 구조 이전 포스팅에서 상품 목록 페이지를 구현했습니다. 오늘은 장바구니 기능을 구현해 보겠습니다. Cart Table 생성 장바구니 데이터를 담기 위한 테이블을 생성합니다. --장바구니 테이블 create table cart ( cart_id number not null primary key, userid varchar2(50) not null, product_id number not null, amount number default 0 ); 테이블을 생성하고 꼭 커밋을 해주고 다음 작업으로 넘어갑니다. DTO 테이블 생성할 때 각 칼럼 이름을 그대로 DTO에 가져와서 각 타입에 맞게 생성해 줍니다. 추가로 장바구니 테이블과 member, product 테이블과 연결을 시켜줘야 하기 때문에 필요..

[ Spring ] 상품 목록 기능 구현

프로젝트 구조 오늘은 상품 관리 할 때 필요한 목록 리스트 기능을 구현해 보겠습니다. 프로젝트 흐름은 다음과 같습니다. Product table 생성 => menu.jsp(호출페이지) => DTO => Controller => Service => DAO => View 단 Product Table 먼저 데이터를 담을 수 있는 테이블을 생성하고 목록 페이지에 출력될 상품 데이터를 추가합니다. -- 상품테이블 생성 create table product ( product_id number, product_name varchar2(50), price number default 0, description clob, picture_url varchar2(500), primary key(product_id) ); in..

[ Spring ] 파일 업로드 테스트 구현

프로젝트 구조 다음 포스팅에 상품 관리 페이지 구현을 하려고 합니다. 상품을 관리할 때 필요한 기능으로 업로드 기능은 필수라서 이전에 JSP로 파일 업로드 기능 구현을 했었는데 이번에는 Spring으로 기능 구현을 해보겠습니다. 프로젝트 흐름은 다음과 같습니다. menu.jsp => UploadController.java= > uploadForm.jsp= > uploadResult.jsp menu.jsp 이전 페이지에서 menu 페이지를 생성했습니다. 업로드 테스트 페이지로 이동할 수 있게 기능을 추가해서 Controller에 보내줍니다. Home | 메모장 | 업로드 테스트 | 상품 목록 | 로그인 | UploadController.java Controller에서는 menu.jsp 에서 보내준 .do ..

[ Spring ] 메모장 만들기(STS)

Spring Tool Suite(STS)를 사용해서 간단한 메모장을 구현했습니다. 프로젝트 구조는 다음과 같습니다. 프로젝트 구조 프로젝트 흐름은 다음과 같습니다. MemoController => MemoService = > MemoServiceImpl = > MemoDAO => memo_list.jsp 그럼 먼저 Table을 생성해서 DTO 생성을 합니다. SQL memo Table memo 테이블을 생성해서 연습용 데이터 두 개 정도 추가해 줍니다. create table memo ( idx number not null primary key, writer varchar2(50) not null, memo varchar2(200) not null, post_date date default sysdate..

[ Java ] Lambda

CHAPTER 25. Lambda Expression 알아가기 오늘은 JDK1.8부터 추가된 람다식(Lambda expression)에 대해서 포스팅해보려 합니다. ■ Lambda expression 람다식(Lambda expression)이란 함수형 프로그래밍의 표현법 입니다. 여기서 함수형 프로그래밍이란 객체 지향 프로그래밍이 나오기 전부터 있던 패러다임 중 하나로서 함수 안으로 들어오는 인자를 가지고 항상 불변한 결과를 돌려주는 것이 목적을 갖고 있습니다. 함수형 프로그램은 함수 내부 중괄호 안에 필요한 변수는 외부에서 받아오고 로직만이 존재하기 때문에 변수에 값이 할당되면 이후에 변하지 않고, 병렬처리나 이벤트 지향 프로그램에서 side effect가 없다는 장점이 있습니다. 즉, 람다식은 함수형..

[ JAVA ]/JAVA 2023.01.17

[ Java ] File 클래스

CHAPTER 24. file Class 알아가기 오늘은 java.io 패키지에서 기존의 파일이나 폴더에 대한 제어를 하는 데 사용하는 File 클래스에 대해서 포스팅해보려 합니다! ■ Java File Class File 클래스는 파일에 대한 정보들을 파악하기 위한 메서드들로 구성되어 있습니다. 파일을 생성하고 삭제하며 지정된 파일이 읽기 가능한지 또한 현재 디렉터리에 어떤 파일들이 있는지를 검사하는 다양한 메서드들이 File 클래스에 준비되어 있습니다. Filde 클래스를 간단하게 정리해보면 다음과 같습니다. File 클래스 : 파일 또는 폴더에 대한 정보를 제공하는 클래스입니다. File 클래스 객체 : 정보를 조회하고자 하는 파일이나 폴더의 경로에 대한 문자열을 생성자 파라미터로 전달하는 형태로 ..

[ JAVA ]/JAVA 2023.01.16

[ Java ] Socket Programming

CHAPTER 23. Socket Programming 알아가기 오늘은 자바의 네트워크 프로그래밍에서 소켓의 개념과 응용에 대해서 포스팅해보려 합니다! 이전 포스팅을 보면 I/O Stream과 같은 메소드로 타입을 바꾸고 그 바뀐 타입으로 여러 가지 기본적인 통신을 알아보았습니다. 자 그런데 그 통신은 default 값이라고 말할 수 있습니다. 즉, 윈도우에서 제공하는 아주 기본적이고 단순한 구조의 통신이라는 정리할 수 있습니다. 기본적인 통신구조는 잘 알려져있어 보안에도 취약합니다. 그래서 나만의 통신구조를 설계하는데 그것을 바로 소켓 프로그래밍이라고 합니다. 그럼 하나씩 알아봅시다. ■ 프로토콜(Protocol) 프로토콜(Protocol)이란 서로 다른 컴퓨터 간의 의사소통을 위한 통신 규약입니다. ..

[ JAVA ]/JAVA 2023.01.13

[ Java ] 객체 직렬화(Object serialization)

CHAPTER 22. 객체 직렬화 알아가기 오늘은 Java의 직렬화, 역직렬화에 대해서 알아봅시다. ■ 직렬화(serialization)란? 자바 시스템 내부에서 사용되는 Object 또는 Data를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술입니다. 또한 JVM(Java Virtual Machine)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 byte 형태로 변환하는 기술이라고도 합니다. 그렇다면 직렬화는 왜 배워야 할까?? 우리는 파일에 텍스트를 기록하고, 이전 데이터를 기록하는 방법은 많이들 알고 계시겠습니다. 그런데 만약 이런 종류의 데이터들이 아니라 객체를 파일로 저장하거나 읽어올 수 있을까요?? 직렬화만 배운다면 할 수 있습니다. 가 ) 직렬화..

[ JAVA ]/JAVA 2023.01.11

[ Java ] I/O Stream

CHAPTER 21. 입출력 알아가기 오늘은 데이터 입출력에 대한 포스팅을 해보려 합니다!! 프로그램에서는 데이터를 외부에서 읽고 다시 외부로 출력하는 작업이 빈번하게 일어납니다. 데이터는 사용자로부터 키보드, 마우스 등을 통해 입력될 수도 있고, 파일 또는 네트워크를 통해 입력될 수도 있습니다. 또한 반대로 데이터를 사용자에게 모니터나 파일 등으로 출력할 수도 있는데 자바에서 데이터는 어떻게 입출력이 될까요?? ■ Stream이란? Java에서는 파일이나 콘솔의 입출력을 직접 다루지 않고, stream(스트림)이라는 흐름을 통해 다룹니다. stream이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미합니다. 즉 단일 방향으로 연속적으로 흘러가는 것을 말하는데, 즉, stream은 운영체제..

[ JAVA ]/JAVA 2023.01.10
728x90