설치 동영상은 바로가기

교육일지

교육상태현황
과목 배정시간 진행률 성취율
자바 300시간(75일) 15일 20%
데이터베이스
JSP
Spring
프로젝트


20220511
스프링개발순서
영속계층 서비스계층 웹계층 화면구성
com.jslhrd.domain
    >> BoardVO.java(C)
com.jslhrd.mapper
    >> BoardMapper(I)
src/test/java/com.jslhrd.mapper
    >> BoardMapperTests(C)
@service
com.jslhrd.service
    >> BoardService.java(I)
    >> BoardServiceImpl.java(C)
src/test/java/com.jslhrd.service
    >> BoardServiceTests(C)
@controller
com.jslhrd.controller
    >> BoardController.java(C)
src/test/java/com.jslhrd.controller
    >> BoardControllerTests(C)
부트스트랩적용
자바스크립트적용

20220509
스프링개발방법
번호 패키지네이밍 서비스
1 com.jslhrd.config
com.jslhrd.controller
com.jslhrd.service
com.jslhrd.domain
com.jslhrd.persistence
com.jslhrd.exception
com.jslhrd.aop
com.jslhrd.security
com.jslhrd.util
src/test/java
   > com.jslhrd.mapper
   > com.jslhrd.persistence
     > DataSourceTests.java
     > JDBCTests.java
   > com.jslhrd.service
   > com.jslhrd.persistence

20220419
온라인쇼핑몰복구방법
create user nonage identified by tiger;
grant connect,resource to nonage;
grant create view to nonage;
(윈도우) imp system/123456 fromuser=nonage touser=nonage file="C:\Users\master\Desktop\Export\oracle/backup.dmp"
(리눅스) imp system/123456 fromuser=nonage touser=nonage file="backup.dmp"

20220412
URL의 변경
http://localhost/test.jsp(모델1)
http://localhost/Servlet
http://localhost/Servlet.do
http://localhost/Servlet.do?command=select(모델2)

20220411
MVC패턴(모델2)을 사용한 게시판
구성요소 설명
모델 주로 데이터베이스와 연동하는 비즈니스 로직을 통해 얻어온 데이터를 저장하는 용도
사용자의 인터페이스로 주로 JSP페이지를 사용
컨트롤 모델과 뷰 사이의 흐름을 제어하는 역할
클라이언트의 요청을 받아 이를 수행하기 위한 모델영역의 어떤 비즈니스 로직을 수행할지 결정
주로 서블릿을 사용
실제 업무를 처리하는 부분(비즈니스 계층)
화면을 처리하는 부분(프리젠테이션 계층)
데이터베이스에서 데이터를 처리하는 부분(퍼시스턴스 계층)
20220404
서블릿을 이용한 미니쇼핑몰 만들기(p540)
번호 JAVA JSP 자바빈즈 서블릿 스프링
1 JSP에서 사용할 부품 만들기
  • 클래스 : 객체를 만들기 위한 설계도(멤버변수+메서드)
  • 인터페이스 : 불안전한 클래스(불안전한 메서드)
  • 상속 : 부모의 성질을 물려 받는것
  • 웹에서 작동되는 언어
  • get방식
  • post방식
    URL이해
    프로토콜 : 도메인 /디렉토리/파일:
    프로토콜 : 도메인/컨텍스트패스/서블릿요청URL패턴
    내장객체
  • request
  • response
  • out
  • session
  • pageContext
    표현방법
    %% : 스크립트릿
    %=% : 표현식
  • 동적콘텐츠 개발을 위해 자바 코드를 사용하여 자바 클래스로 로직을 작성하는 방법
    자바빈즈는 데이터 표현을 목적
  • jsp:useBean id="" class="" scope=""
  • 서블릿 = Server+Applet의 합성어
    서버에서 실행되는 Applet이란 의미로 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술 Applet이란
    애플릿(영어: applet)은 플러그인의 하나로서 전용 위젯 엔진이나 더 큰 프로그램 범위 내에서 실행되는 특정한 작업을 수행하는 조그마한 응용 프로그램을 말한다.

    자바 클래스 형태의 웹 어플리케이션
    어노테이션
  • 문장이나 문서에 추가적인 정보를 기입하는 것
  • 자바 프로그램에 영향을 주는 것이 아니라 컴파일할 때 환경 설정을 변경해 줄 것을 알려주는 주석 형태 response.setContentType("text/html;charset=UTF-8")
    request.setCharacterEncoding("UTF-8")
  • 데이터베이스 커넥션 풀
    http://tomcat.apache.org
    https://tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_2_Example
    create database javatest;
    use javatest;
    create table testdata (
    id int not null auto_increment primary key,
    foo varchar(25),
    bar int);

    리눅스 명령어 정리
    번호 명령어 설명
    1 mkdir 디렉토리 만들기
    20220331

    업로드 방법
    form method="post" action="" enctype="multipart/form-data"
    오픈 라이브러리 cos.jar 등록하기
    http://servlets.com/cos/
    com.oreilly.servlet.*
    com.oreilly.service.miltipart.*
    String filename="";
    String realFolder="";
    int maxSize;
    String encType="";
    매개변수 설명
    request Request 내장 객체를 설정
    saveDirectory 서버의 파일 저장 경로를 설정
    maxPostSize 파일의 최대 크기(Byte)
    encoding 인코딩 유형 설정
    policy 파일명 변경 정책 설정

    MultipartRequest메서드
    메서드 유형 설명
    getParameter(String name) String 요청 파라미터 이름이 name 값을 전달
    20220330

    서블릿(mvc패턴이해)을 이용한 게시판 마무리
    Board
    private int idx;
    private String id;
    private String name;
    private String subject;
    private String content;
    private String regist_day;
    private int hit;
    private String ip;
    board테이블
    create table tbl_board {
    idx int not null auto_increment,
    id varchar(10) not null;
    name varchar(10) not null;
    subject varchar(10) not null;
    content text not null;
    regist_day varchar(10) not null;
    hit int not null;
    ip varchar(10) not null;
    primary key(idx) default charset=utf8;
  • 페이징 기법 구현
  • 검색 기법 구현

    20220329

    미니쇼핑몰
    Product
    private String productId;
    private String pname;
    private int unitPrice;
    private String description;
    private String manufacturer;
    private String category;
    private int unitInStock;
    private String condition;
    미니쇼핑몰
    ProductBean








    Product테이블
    create table product {
    idx int not null auto_increment,
    productId varchar(10) not null;
    pname varchar(10) not null;
    unitPrice int not null;
    description varchar(10) not null;
    manufacturer varchar(10) not null;
    category varchar(10) not null;
    unitInStock long not null;
    conditions varchar(10) not null;
    primary key(idx) default charset=utf8; 미션1. 테이블에 있는 데이터를 화면출력하라!
    미션2. 데이터를 저장하라!
  • 파일 업로드 방법
    미션3. 장바구니 페이지 만들기
    미션4. 주문 처리 페이지 만들기

    20220328

    쿠키와 세션
    무 상태 연결
    요청과 응답
    쿠키는 서버가 아닌 클라이언트 컴퓨터의 하드디스크에 사용자의 정보를 저장
    쿠키만들기
    1. 쿠키 객체 생성
    2. 쿠키 속성 값 설정
    3. response 객체의 addCookie() 메소드 호출
    4. 단점 해킹이 가능함
    세션 만들기
    1. JSP에서만 접근 가능하므로 보안 유지에 강력함
    2. 저장할 수 있는 데이터에 한계가 없음
    3. session.setAttribute(String name, Object value);
    4. session.getAttribute();
    5. session.removeAttribute();
    6.session.invalidate();
    래퍼클래스
    Enumeration(제너릭) 클래스
    20220323

    MVC패턴 적용
    최신 웹 구현 기술 적용
    고급 JSP 기술 적용 : 표현언어,커스텀태그,JSTL사용
    로깅처리 : slf4j, log4j
    데이터베이스 커넥션 풀 : 아파치 DBCP를 이용한 커넥션 풀 구현
    한글 처리 필터 : 필터를 이용해 HTML 폼 캐릭터셋 처리
    세션 기술 응용 : 로그인,로그아웃 화면 전환, 로그인시 삭제 메튜 표시
    20220321
    표현언어: 간단한 방법으로 데이터를 표현하려고 고안된 언어
    표현언어 기본 문법
  • 표현언어는 $로 시작한다.
  • 모든 내용은 {}과 같이 구성된다.
  • 표현식에는 기본적으로 변수이름,혹은 객체이름.멤버변수이름 구조로 이루어진다.
  • 표현식에는 기본적인 연산을 할 수 있다.
  • 표현식에는 부가적으로 숫자,문자열,boolean,null과 같은 상수 값도 올수 있다.
    내장객체 기능
    param request.getParameter()로 얻을수 있는 값들이다.
    커스텀태그
    커스텀태그(Custom Tag)는 원래 JSP 페이지에서 반복적인 프로그램 로직을 캡슐화하려고 고안된 것.
    커스텀태그라이브러리를 사용하면 JSP페이지에서 프로그램적인 요소를 최대한 분리할 수 있으므로, 디자이너는 더욱 쉽게 화면을 관리할 수 있고 프로그래머는 화면에 신경쓰지 않고 프로그램을 관리하는데 집중
    커스텀태그라이브러리를 사용하는 이유
  • 비즈니스 로직으로부터 화면 표현을 분리 할 수 있다.
  • 비즈니스 로직의 캡슐화
  • 보다 완벽한 MVC 패턴을 구현 할 수 있다. taglib 지시어
    jsp지시어의 한 종류
    지시어는 JSP페이지에 공통으로 필요한 정보들을 기술하는 부분
    JSTL :커스텀 태그로 만들어진 태그 라이브러리
    표현언어 > 커스텀태그 > JSTL
    select name="sel"
    for() {

    }
    taglib prefix="c" uri="" select name="sel"
    c:forEach items="" var="" {

    c:forEach
    라이브러리 기능 태그 접두어
    핵심 General Purpose Actions
    Conditional Actions
    Iterator Actions
    URL Related Actions
    catch,out,remove,set
    choose,when,otherwise,if
    forEach,forTokens
    import,redirect,url,param
    c

    20220322
    1. 레고관리시스템
    프로젝트명: lego
    패키지 : lego
    디비정보 : root , 123456 , db53
    확인 : http://jslweb.izerone.co.kr/lego/

    조건
    가격의 최대값 찾기
    가격의 최소값 찾기
    연도별 제품 카운트 하기
    lego(만들어져있음) Lego LegoBean
    CREATE TABLE IF NOT EXISTS `lego` (
    `idx` int(10) NOT NULL AUTO_INCREMENT,
    `modelNum` varchar(20) NOT NULL COMMENT '모델번호',
    `modelName` varchar(20) NOT NULL COMMENT '모델명',
    `year` varchar(50) NOT NULL COMMENT '연도',
    `maker` varchar(50) NOT NULL COMMENT '제조사',
    `price` int(10) NOT NULL DEFAULT '0' COMMENT '가격',
    `age` int(10) NOT NULL DEFAULT '0' COMMENT '연령',
    `manual` varchar(50) NOT NULL DEFAULT '0' COMMENT '설명서유무',
    `reg_date` datetime NOT NULL COMMENT '등록일',
    PRIMARY KEY (`idx`)

    private String modelNum;
    private String modelName;
    private String year;
    private String maker;
    private String price;
    private int age;
    private String manual;
    void connect(){
    }
    void disconnect(){
    }
    void updateDB(){
    }
    void deleteDB(){
    }
    void insertDB(){
    }
    void selectDB(){
    }
    void getDB(){

    }
    데이터베이스 연결(Mysql경우)
    객체생성 Connection conn=null;
    PrepareStatement pstmt=null;
    String jdbc_driver ="";
    String jdbc_url="";
    드라이버추가
    Class.forName();
    DrirverManager.getConnection();
    번호 기능 파일이름
    1 레고 목록 화면 lego_list.jsp
    2 레고 입력 화면 lego_form.jsp
    3 레고 수정/삭제 화면 lego_edit_form.jsp
    4 레고 실행 메인(목록화면으로 바로 이동함) index.jsp
    5 공용 스타일시트 lego.css
    6 레고 컨트롤러 lego_ctl.jsp
    7 오류처리를 위한 페이지 lego_error.jsp
    핵심내용
    request.setCharacterEncoding("UTF-8");
    isErrorPage="true"
    import=java.util.*
    import lego.*;
    pageContext.forward("lego_ctl.jsp?command=select");
    response.sendRedirect();
    jsp:useBean id="" class="" scope=""
    request.setAttribute();

    디렉티브 태그
    디렉티브 태그 형식 설명
    page @page JSP 페이지에 대한 정보를 설정
    include @include JSP 페이지의 특정영역에 다른 문서를 포함
    taglib @taglib JSP 페이지에서 사용할 태그 라이브러리를 설정
    1. 시작페이지 만들기
    2. 한글출력및 페이지 모듈화하기(include)
    3. 상품등록 표시하기
    4. 상품상세 표시하기
    5. 상품등록 페이지 만들기(상품이미지등록) > 유효성검사 > 다국어 처리 > 보안처리
    6. 장바구니 만들기
    7. 주문처리 페이지 만들기
    8. 로그 기록하기
    9. 예외 처리 페이지 만들기
    10. 로그인 페이지
    11. 관리자 페이지
    12.
    13.
    product Product ProductBean
    create table member(
    uid varchar(10) not null,
    name varchar(15) not null,
    passwd varchar(12) not null,
    email varchar(45) not null,
    date date not null,
    primary key(uid)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    private String productId;
    private String pname;
    private Integer unitPrice;
    private String description;
    private Date manufacturer;
    private Date category;
    private long unitsInStock;
    private String condition;
    void connect(){
    }
    void disconnect(){
    }
    void addMember(){
    }
    void login(){
    }
    void getNewMembers(){
    }

    member Member MemberBean
    create table member(
    uid varchar(10) not null,
    name varchar(15) not null,
    passwd varchar(12) not null,
    email varchar(45) not null,
    date date not null,
    primary key(uid)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    private String name;
    private String uid;
    private String passwd;
    private String email;
    private Date date;
    void connect(){
    }
    void disconnect(){
    }
    void addMember(){
    }
    void login(){
    }
    void getNewMembers(){
    }

    데이터베이스 연결(Mysql경우)
    객체생성 Connection conn=null;
    PrepareStatement pstmt=null;
    String jdbc_driver ="";
    String jdbc_url="";
    드라이버추가
    Class.forName();
    DrirverManager.getConnection();
    번호 기능 파일이름
    1 컨트톨러 user_ctl.jsp
    2 사용자등록 user_form.jsp
    3
    4
    5
    6
    7
    핵심내용
    request.setCharacterEncoding("UTF-8");
    isErrorPage="true"
    import=java.util.*
    import addrbook.*;
    pageContext.forward("ab_ctl.jsp?command=select");
    response.sendRedirect();
    jsp:useBean id="" class="" scope=""
    request.setAttribute();
    insert into member(uid,name,passwd,email,date) values('admin','관리자','12345','admin@test.com','2022-03-28');


    20220321
    member Member MemberBean
    create table member(
    uid varchar(10) not null,
    name varchar(15) not null,
    passwd varchar(12) not null,
    email varchar(45) not null,
    date date not null,
    primary key(uid)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    private String name;
    private String uid;
    private String passwd;
    private String email;
    private Date date;
    void connect(){
    }
    void disconnect(){
    }
    void addMember(){
    }
    void login(){
    }
    void getNewMembers(){
    }

    데이터베이스 연결(Mysql경우)
    객체생성 Connection conn=null;
    PrepareStatement pstmt=null;
    String jdbc_driver ="";
    String jdbc_url="";
    드라이버추가
    Class.forName();
    DrirverManager.getConnection();
    번호 기능 파일이름
    1 컨트톨러 user_ctl.jsp
    2 사용자등록 user_form.jsp
    3
    4
    5
    6
    7
    핵심내용
    request.setCharacterEncoding("UTF-8");
    isErrorPage="true"
    import=java.util.*
    import addrbook.*;
    pageContext.forward("ab_ctl.jsp?command=select");
    response.sendRedirect();
    jsp:useBean id="" class="" scope=""
    request.setAttribute();

    20220316
    addrbook AddrBook AddrBean
    CREATE TABLE `addrbook` (
    `ab_id` int(11) NOT NULL AUTO_INCREMENT,
    `ab_name` varchar(15) NOT NULL,
    `ab_email` varchar(50) DEFAULT NULL,
    `ab_comdept` varchar(20) NOT NULL,
    `ab_birth` varchar(10) NOT NULL,
    `ab_tel` varchar(20) DEFAULT NULL,
    `ab_memo` varchar(100) DEFAULT NULL,
    PRIMARY KEY (`ab_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    int ab_id;
    String ab_name;
    String ab_email;
    String ab_tel;
    String ab_birth;
    String ab_comdept;
    String ab_memo;
    void connect(){
    }
    void disconnect(){
    }
    void updateDB(){
    }
    void deleteDB(){
    }
    void insertDB(){
    }
    void selectDB(){
    }
    void getDB(){

    }
    데이터베이스 연결(Mysql경우)
    객체생성 Connection conn=null;
    PrepareStatement pstmt=null;
    String jdbc_driver ="";
    String jdbc_url="";
    드라이버추가
    Class.forName();
    DrirverManager.getConnection();
    번호 기능 파일이름
    1 주소록 목록 화면 ab_list.jsp
    2 주소록 입력 화면 ab_form.jsp
    3 주소록 수정/삭제 화면 ab_edit_form.jsp
    4 주소록 실행 메인(목록화면으로 바로 이동함) index.jsp
    5 공용 스타일시트 ab.css
    6 컨트롤러 ab_ctl.jsp
    7 오류처리를 위한 페이지 ab_error.jsp
    핵심내용
    request.setCharacterEncoding("UTF-8");
    isErrorPage="true"
    import=java.util.*
    import addrbook.*;
    pageContext.forward("ab_ctl.jsp?command=select");
    response.sendRedirect();
    jsp:useBean id="" class="" scope=""
    request.setAttribute();
    참고자료
    html(layout) 반응형css
    GUI 프로그래밍
    import javax.swing.JFrame;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setTitle("GUI연습");
    setSize(500,500);
    setVisible(true);
    new MyGUI();

    이벤트처리
    button.addActionListener();
    기능 JAVA
    텍스트상자 input type="text" name=""
    버튼 JButton btn1=new JButton("버튼1")
    this.add(btn1)
    input type="submit"
    레이블 JLable lbl=new JLable("레이블입니다.")
    this.add(lbl)
    input type="submit"
    체크박스 JCheckBox chk1=new JCheckBox("버튼1")
    this.add(chk1)
    input type="submit"
    라디오버튼 JRadioButton rdo=new JRadioButton("고래")
    this.add(rdo)
    input type="submit"
    텍스트필드 JTextField txt1=new JTextField(10)
    this.add(txt1)
    input type="submit"
    JTextArea JTextArea txt2=new JTextArea(5,10)
    this.add(rdo)
    input type="submit"
    암호 JPasswordField txt3 = JPasswordField(10) input type="submit"
    20220315
    SNS프로그램개발
    1. 요구사항분석
    2. SNS 프로그램 설계
    1) 화면목록
    번호 기능 파일이름
    1 메인화면 sns_main.jsp
    2 회원가입화면 new_user.jsp
    3 오류처리화면 error.jsp
    404-error.jsp
    2) 클래스설계
    패키지 클래스이름 설명
    mysns.member Member 회원정보DO클래스다.
    3) 컨트롤러 설계
    4) 데이터베이스 설계
    사용자 테이블 구조
    create table s_member (
    )
    게시글 테이블 구조
    create table s_message(
    )
    댓글 테이블 구조
    create table s_reply(
    )
    SQL백업과 관리 5) 커스텀 태그 설계
    커스텀태그 구현기능 로그인전 로그인후


    추상클래스는 일반 클래스와는 다르게 인스턴스를 생성할 수 없다.
    추상클래스를 사용하려면 먼저 서브 클래스에서 추상 클래스를 상속 받은후 서브 클래스의 인스턴스를 생성한다.
    접근제어수식어 같은 클래스 같은 패키지 하위 클래스 외부 클래스
    public 접근가능 접근가능 접근가능 접근가능
    protected 접근가능 접근가능 접근가능 접근불가능
    default 접근가능 접근가능 접근불가능 접근불가능
    private 접근가능 접근불가능 접근불가능 접근불가능
    일반클래스 추상클래스 인터페이스
    일반필드(o)
    static final 필드(o)
    추상메서드(x)
    일반메서드(o)
    일반필드(o)
    static final 필드(o)
    추상메서드(o)
    일반메서드(o)
    일반필드(x)
    static final 필드(o)
    추상메서드(o)
    일반메서드(x)

    20220312
    상속
    extends
    super : 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수
    super() : 생성자
    서블릿 = Server + Applet 서버에서 실행되는 Applet => 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술
    애노테이션 자바 프로그램에 영향을 주는 것이 아니라 컴파일할때 환경 설정을 변경해 줄 것을 알려줌
    상속관계 : ~은 ~이다.(is-a)
    포함관계 : ~은 ~을 가지고 있다(has-a)
    오버로딩
    오버라이딩

    20220310
    지시어는 해당하는 JSP파일의 속성을 기술하는 곳
    page 지시어 include 지시어 taglib 지시어 액션은 JSP 주요 구성요소 중 하나
    액션 사용예 기능
    include
    forward
    useBean
    setProperty
    request.setCharacterEncoding("UTF-8");
    useBean액션
    액션에서 가장 중요한 부분
    jsp:useBean id="mybean" class="MyBean" scope="request"
    jsp:setProperty name="" property="" /
    jsp:getProperty name="" property="" /
    MyBean mybean = (MyBean)request.getAttribute("mybean");
    빈즈(Beans)는 특정한 일을 독립적으로 수행하는 컴포넌트를 의미
    POJO(Plain Old java Object)
    JSP 코드 내에 스크립트릿(%%)를 사용하는 것보다는 빈즈를 만들어 사용하는 것이 좋다.
    DO(Data Object) 클래스에는 테이블과 대응할 수 있는 필드 관련 기능만 존재
    DAO(Data Access Object) 클래스에는 데이터베이스 접속과 관련한 정보와 입력,출력,삭제와 같은 기능이 존재

    20220303
    클래스 = 멤버변수 + 메서드
    main()메서드 포함하는 클래스 오직 하나만 존재해야 한다.
    객체
    인스턴스화
    인스턴스
    멤버변수
    메서드
    생성자
    this
    getter,setter

    20220307
    Product ProductStorage ProductMain

    싱글톤 만들기
    가끔 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 한다.
    객체가 단 하나만 생성된다고 해서 이를 싱글톤(Singleton)이라고 한다.
    싱글톤 만드는 방법
    1. 외부 클래스에서 new 연산자로 생성자를 호출할 수 없도록 막아야 함.
    2. private 접근 지정자(제한자) 사용
    3. 자신의 타입인 정적 필드 하나 선언 및 자신의 객체 생성
    4. getInstance()를 선언후 정적 필드에서 참조하고 있는 자신의 객체를 리턴하도록 함.
    예(무조건 암기)
    public B {
    private static B singleton = new B();
    private B() {

    }
    static B getInstance() {
    return singleton;
    }

    }
    컬렉션 프레임워크
    컬렉션은 객체의 저장
    프레임워크는 사용 방법을 정해 놓은 라이브러리

    20220203

    클래스명 Address(J) BoardVO(W)
    멤버변수 String name;
    String age;
    String phone;
    Long bno;
    String title;
    String content;
    String writer;
    Date regdate;
    Date updateDate;
    메서드 print_menu();
    view_juso();
    add_juso();
    delete_juso();

    개발과정
    1. 문제정의
    2. 클래스 정의하고 관계도 그리기 == 데이터베이스 설계와 비슷함
    Student Subject Score
    학번
    학생이름
    필수과목
    수강한 과목 점수 리스트
    과목 이름
    과목 고유 번호
    학점 산출 방식
    수강 신청한 학생 리스트
    학번
    과목
    점수
    20220217


    데이터관리 개념 확장하기 : 변수 > 배열 > 구조체 > 클래스 > 파일 > 데이터베이스
    1. 파일
    1) 파일에 연결한다.
    FileReader > BufferedReader
    2) 내용을 읽는다.
    readline(),line.split(",");
    3) 파일을 닫는다.
    close()
    2. 데이터베이스
    모델번호 :
    모델명 : 문자열
    연도 :
    제조사 :
    가격 :
    연령 :
    조립설명서 유무:
    mysql -u root -p
    show databases;
    create database DB;
    use DB53;
    DROP TABLE IF EXISTS `lego`;
    CREATE TABLE IF NOT EXISTS `lego` (
    `idx` int(10) NOT NULL AUTO_INCREMENT,
    `modelNum` varchar(20) NOT NULL COMMENT '모델번호',
    `modelName` varchar(20) NOT NULL COMMENT '모델명',
    `year` varchar(50) NOT NULL COMMENT '연도',
    `maker` varchar(50) NOT NULL COMMENT '제조사',
    `price` int(10) NOT NULL DEFAULT '0' COMMENT '가격',
    `age` int(10) NOT NULL DEFAULT '0' COMMENT '연령',
    `manual` varchar(50) NOT NULL DEFAULT '0' COMMENT '설명서유무',
    `reg_date` datetime NOT NULL COMMENT '등록일',
    PRIMARY KEY (`idx`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='레고';
    "70310","나이튼 왕국의 배틀 블래스터","2016","레코코리아","30000","10","Y"
    INSERT INTO `lego` (`idx`, `modelNum`, `modelName`, `year`, `maker`, `price`,`age`, `manual`,`reg_date`) VALUES (1, '70310', '나이튼 왕국의 배틀 블래스터', '2016', '레코코리아', 30000, 10, 'Y','2012-06-12 22:23:01');
    show tables;
    select * from lego;
    select * from lego order by price asc;
    select * from lego order by price desc;
    drop database DB;
    show databases;

    20220216

    구분 만들어야 할 것 만들어져 있는 것
    변수
    함수
    클래스
    클래스
    20220215

    필요하면 클래스를 불러와서 사용하자!
    입력이 필요하다.
    import java.util.*;
    클래스명: Scanner;
    함수명 기능
    nextLine()
    난수가 필요하다.
    import java.util.*;
    클래스명: Random;
    함수명 기능
    Random()
    서버에 연결이 필요하다.
    import java.net.*;
    클래스명: InetAddress
    클래스명: URL
    클래스명: URLConnection
    클래스명: ServerSocket
    클래스명: Socket
    함수명 기능
    getByName()
    getHostName()
    getHostAddress()
    getPort()
    getFile()
    getPath()
    openConnection()
    accept()
    파일 내용을 읽는게 필요하다.
    import java.io.*;
    클래스명: FileReader;
    클래스명: BufferedReader;
    함수명 기능
    readLine() 한줄씩 읽는다.
    데이터베이스가 필요하다.
    import java.sql.*;
    클래스명: ;
    클래스명: ;
    함수명 기능
    Random()
    20220125

    순서도를 읽어라!
    20220124

    자바 프로그램 시작
    클래스 = 변수+함수
    에러 확인
    변수 설명(p29 자료형:8), 연산자(p87)
    클래스 이름과 파일명은 동일하게 쓰시오!
    연산자이해

    20220119

    1. 자바설치
    1) 설치 위치 C:\Program Files\Java\jdk-11.0.12\bin
    cd C:\Program Files\Java\jdk-11.0.12\bin
    dir
    java class파일을 실행시키는 프로그램
    javac .java로 된 코드를 class파일이 만들어주는 프로그램
    java
    Usage: java [options] [args...]
    2) 시스템 환경변수 설정
    실행 > 시스템 환경변수
    환경변수 등록후 재부팅
    d:
    cd java
    java --> Usage: java [options] [args...]
    2. 편집기
    1) 수종편집기 : Editplus
    메모장
    FTP연결기능
    3개월(1개월) Editplus
    https://www.editplus.com/kr/
    2) 자동편집기 : Eclipse

    3. Tomcat 재설치
    실행 > regedit> HKEY_LOCAL_MACHINE\SOFTWARE\에 있는 Apache Tomcat 관련 데이터를 모두 삭제
    실행 > cmd(권리자 권한) 실행후 sc delete Tomcat9 실행후 재설치 합니다.

    4. 오라클 설치
    Destination Folder: C:\oraclexe\
    Oracle Home: C:\oraclexe\app\oracle\product\11.2.0\server\
    Oracle Base:C:\oraclexe\
    Port for 'Oracle Database Listener': 1521
    Port for 'Oracle Services for Microsoft Transaction Server': 2030
    Port for 'Oracle HTTP Listener': 9090

    5. mysql설치편
    서버와 workbench는 반드시 설치해주세요
    mysql 설치 위치
    C:\Program Files\MySQL
    C:\ProgramData\MySQL

    6. 외워야할 포트 번호
    8080
    9090
    1521
    2030
    3306

    20210118

    자바 설치및 테스트 코드 실행
    javac T0118_1.java
    java T0118_1
    수동으로 자바 프로그램 만드는 Editplus 설치
    자동으로 자바 프로그램 만드는 eclipse 설치

    자바 클래스
    인터페이스
    상속
    데이터베이스 데이터베이스 문법 및 활용
    JSP&Servlet 모델1, 모델2의 이해
    Spring Framework MVC 익히기
    프로젝트
  • 리눅스 서버 구축 (Ubuntu21)
  • 도메인 구입
  • 서버 호스팅 기수별 통합 관리
  • 기본도서
    1. 자바의 정석
    2. 오라클로 배우는 데이터베이스 개론과 실습
    3. 백견불여일타
    4. 코드로 배우는 스프링웹 프로젝트
    참고도서
    5. 코드로 배우는 스프링웹 프로젝트
    6. 코드로 배우는 스프링웹 프로젝트
    7. 코드로 배우는 스프링웹 프로젝트
    8. 코드로 배우는 스프링웹 프로젝트
    9. 코드로 배우는 스프링웹 프로젝트
    참고사이트 https://2eel.tistory.com/3