ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 정리
    Java 2017. 12. 11. 01:58
    반응형

    기술


    Java


    객체 : 클래스에서 메모리를 할당 받으면 객체(속성과 기능의 집합)

    클래스 : 여러가지 자료형과 메서드 들을 모와서 정의해놓은 것(즉, 객체를 정의)

    JVM 자바가상머신 : OS와 소스코드 사이의 완충역할을 해줘서 작성한 소스코드를 운영체제에 독립적으로 만들어준다

    컴파일된 자바코드는 os에 영향을 받는 머신코드가 아닌 바이트 코드 라고 부른다.

    소스코드를 작성하고 .java파일로 저장한 후에 컴파일하여 바이트 코드인 .class파일을 생성한다. 

    바이트 코드는 jvm에서 실행되는데, 1줄 단위로 기계어로 컴파일됨 



    상속(inheritance) : extends로 -> 부모의 클래스를 재사용하는 방법으로 새로운 클래스를 만들 때에

    적은 양의 코드로 가능


    오버로딩(overloading) : 같은 이름의 메서드를 사용(매개변수의 갯수, 타입이 달라야함)

    -> 같은 기능을 사용하는데 매개변수의 갯수나 타입이 다를 때 마다 이름을 다르게 하면 이름을 짓기도 힘들고

    사용할 때 각 이름을 하나하나 기억하기도 힘듬-> 그래서 사용

    오버라이딩(overriding) : 상속받은 메서드의 내용을 변경하는 것(이름, 매개변수, 리턴타입 모두 같아야함)

    ->상속받아서 자식클래스의 내용에 맞게 메서드를 수정하는 것


    다형성 : 한 타입의 참조변수로 여러 타입의 객체를 참조

    -> 조상클래스의 참조변수로 자식클래스의 객체 사용(조상클래스의 있는 멤버들만 사용가능)

    -> 자체적으로 있는 자식 클래스것은 사용 불가


    추상클래스 : 미완성된 설계도 -> 선언부만 선언해두고 그것을 상속 받은 곳에서 구현부를 작성

    <->인터페이스 : 기본설계도 : 추상클래스와 달리 일반 메서드나 일반 변수를 사용 불가

    -> 사용하는 이유는 인터페이스나 추상클래스로 작성해 놓으면 상속받은 자식클래스는 

    오버라이딩을 통해 그것을 자신의 클래스에 맞게 구현할 수 있게 만들려고.

    --> 듣기로는 팀장이 인터페이스로 어느정도 설계해 놓으면 그 것을 상속받아서 구현부를 팀원들이 작성한다고

    또한 인터페이스를 통해 다중상속이 ㄱㅏ능해짐. 다른 클래스끼리 관계를 맺어줌

    가장 중요 -> 독립적 프로그램 가능 -> 


    콜렉션 : 데이터를 쉽게 처리하기 위해 사용하는 클래스

    -> list(vector arraylist stack) : 데이터 저장순서 유지 및 데이터 중복허용

     map(hashmap treemap) : 키와값의 쌍으로 이루어져 있으며 키는 중복불가 값은 허용

     set(hashset treeset) : 데이터 저장순서 유지 안되며 데이터 중복 불가 

    vector arraylist의 차이점은 동기화입니다.

    동기화 : 여러개의 스레드가 하나의 인스턴스를 사용하고자 할때 해당하는 스레드를 제외하고 나머지의 접근을 막는 방법

    -> 쓰는 이유 : 사용자의 의도대로 차례대로 실행되게 하려고


    멀티쓰레딩 : cpu는 원래 한가지 일밖에 못함. 하나의 프로세스 내에서 여러개의 쓰레드가 짧은 시간동안

    여러 작업을 수행함으로써 여러개의 일을 하는 것 처럼 보이게 하는것


    ----------------------------------------

    Jsp(기본형태 MVC) -> Java서버 페이지 

    내장객체 : out, request, response, session, application, exception, page 등


    내장객체 영역 4가지 : page 영역 -> 하나의 jsp 페이지영역 -> 그 해당 jsp페이지 안에서만 데이터 공유

    session -> 하나의 웹 브라우저영역 -> 웹브라우저가 종료 전까지 모든 페이지에서 데이터 공유

    request -> 요청을 처리할때 쓰는 영역인데 request를 공유하는 페이지는 모두 데이터 공유가능

    application은 하나의 프로젝트에 있는 모든 페이지 공유


    Model : 데이터 모델링(생성, 저장, 처리)을하고 비지니스 로직 처리를 함(db처리)


    View : 정보를 보여주는 역할(데이터 출력)


    Controller : 뷰와 모델 사이의 흐름을 제어하는 역할


    요청이 들어오면 -> controller에서 클라이언트 요청에 따라 모델(java bean)로 데이터 이동

    -> 비지니스 로직(데이터처리)처리를 하고 결과를 request나 session 속성에 저장한 후 

    -> 뷰로 포워딩해서 상대방에 결과를 보여준다.


    jsp 동작 구조 

    : 웹브라우저에서 웹서버로 jsp파일을 요청 -> 컨테이너에서 jsp파일을 servlet으로 변환시켜준다음 그 

    자바 파일을 컴파일을 한 후 오류가 없으면 요청에 따른 응답을 한다.


    -------------------------------------------------------

    jsp와 서블릿은 거의 비슷하지만 jsp를 사용하는 이유는 servlet은 자바로 이루어져있기 때문에

    사용자가 인식을 하는 html 소스를 작성하려면 println으로 다 작성해야함. 거기다 servlet은 모두 웹 서버에

    올려져있기 때문에 소스를 수정하면 웹 서버를 다시 껏다 켜야함. jsp 는 html기반에 java를 올려둔것이라

    html 코드를 작성하기 쉽고 jsp 요청후에 컴파일이 되기 때문에 jsp만 바꾼다고 서버를 껏다킬 필요가 없음


    Servlet

    -> jsp 동작구조와 같이 알아둘 것

    사용자가 요청을 할 때 컨테이너가 요청을 받아서

    Servlet의 컨테이너 역할( HttpServletRequest와 Response객체를 생성

    -> 요청 처리를 위해 스레드 생성하고 service()라는 메서드를 호출 -> doGet()이라는 메서드를 호출하고

    사용자 요청을 처리한 다음 작성된 응답을 사용자에게 전송후 생성된 스레드 소멸)


    -------------------------------------------------------

    Spring(프레임워크) -> 3가지 종류 : strots, ejb, spring

    -> 자바 개발 간소화

    AOP(Aspect-Oriented Programming) -> 관점지향프로그램입니다.

    aop를 사용하면 횡단관심사가 공통적인 것을 모와서 작성한다.()


    스프링에서의 컨테이너 -> 객체의 생명 주기를 관리


    DI(Dependency Injection) -> 의존성 주입 이라고 하며 느슨한 결합이라고도 합니다.

    인터페이스를 만들어서 그것을 상속받게 클래스를 만든다. 실행시킬 내용이 바뀔때 이렇게 하지 않으면

    그 클래스의 참조변수로 작성된 모든 소스를 다 바꿔야하기 때문에

    느슨한 결합으로 해놓으면 실행시킬 클래스만 가져와서 쓰면된다.



    템플릿

    ->기존에 DB처리를 하기위해 예외처리나 db처리 등을 위한 소스들이 중복되어 있는데

    이것을 Spring에서 다 처리해주기 때문에 소스의 양이 줄어든다.

    또한 보기 간결하고, 수정하기 쉽다. -> 쿼리 날리기도 쉬워짐


    싱글톤과 빈의 유효범위

    싱글톤 : 객체는 하나이고 만든 객체를 다 공유한다는 의미

    -> 빈을 만들 때 prototype 이라고 이름 지어 놓으면 새로운 메모리 할당받는다



    DB처리할 때

    select 하나 가져올 때 -> QueryForObject(sql, 반환타입, sql에 넣을 데이터), insert update delete는 update로 쿼린ㄹ림


    servlet 네임과 같은 이름의 xml로 mvc 만들기



    JSTL

    자주 사용되는 custom tag들만 모와 놓은 것으로 JSP에서 JAVA처럼 FOR IF문 등 쉽게 사용


    ----------------------------------------------------



    Mybatis

    -> DBBean에 작성하는 db처리 부분이 스프링보다 더 간소화(DBBean에는 자바소스만, sql은 따로 관리)

    -> Mapper로 연결해서 sql 날리는 소스 부분을 xml 넣어서 한 번에 관리


    네트워크 및 서버관련 지식

    WebServer 웹서버 : 정적인 페이지를 표현하기 위한서버ex)아파치, 웹투비

    웹 브라우저를 통하여 클라이언트로부터 HTTP 요청을 받아서 미리 저장된 하이퍼 텍스트(HTML문서등)를 제공하는 서버


    WAS 웹 어플리케이션 서버 : 동적인 페이지를 표현하기 위한 서버


    WAS : WebApplicationServer ->  동적인 페이지를 표현하기위한 서버 EX) 아파치 톰켓, 제우ㅡ

    WAS는 실제로 처리해야하는 비지니스 로직이 올라가서 웹서버나 자체 웹서버로 들어오는 요청을 처리해서 돌려준다.


    jsp 동작구조를 설명하면됨

    웹 브라우저에서 요청하면 웹 서버가 jsp파일을 분석해서 컨테이너로 요청을 받아서 servlet파일로 변환후에

    컴파일해서 요청에 따른 응답을 되돌려주는 방식




    oracle : 

    DDL 데이터 정의어 : CREATE DROP ALTER

    DCL 데이터 제어어 : GRANK REVOKE COMMIT ROLLBACK

    DML 데이터 조작어 : INSERT DELETE UPDATE

    DQL 데이터 질의어 : SELECT


    JOIN : INNER JOIN : EQUI JOIN(등가조인) NON-EQUI JOIN(비 등가조인)

    OUTER JOIN : LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN

    SELF JOIN





    sql에서 

    이너조인

    -등가조인: 공통 속성을 기준으로 =(등호) 비교에 의해 같은 값을 가지는 행을 연결(=일때 동일한 속성이 두번 나타나는데)

    -> 중복된 속성을 제거하여 한번만 표기하는 것이 Naturl join  

    -비등가 조인 : =을 제외한 나머지 비교연산자를 통해 join하는 방법

    아우터조인: join조건에 만족하지 않은 튜플도 결과로 출력

    -레프트아우터조인 : 이너조인 결과를 구한후, 왼쪽 테이블에는 모든 튜플 출력, 오른쪽에는 조건에 맞는것만

                        -> 조건에 맞지않는 튜플에는 null을 붙여서 출력

    -라이트아우터조인 : 이너조인결과를 구한후, 오른쪽 테이블에는 모든 튜플 출력, 왼쪽에는 조건에 맞는 것만 출력

        -> 조건에 맞지않는 튜플에는 null을 붙여서 출력

    -풀아우터조인 : left outer join과 right outer join을 합쳐 놓은것.



    회로기판 : 

    커스터마이징 : 고객의 요구에 따라 제품을 만들어주는 맞춤제작 서비스

    ITSM : IT(information technology : 정보통신기술) service management

    반응형

    'Java' 카테고리의 다른 글

    Java - do While Example  (0) 2018.01.12
    Java - While  (0) 2018.01.12
    Java - elseIF, 자판기  (0) 2018.01.12
    Java Boolean  (0) 2018.01.11
    Java 변수 설정 - Chapter01  (0) 2018.01.11

    댓글

Designed by Tistory.