기술면접 정리

      1. 자바의 특징을 말하시오...
        1. 객체지향언어
        2. 함수적 스타일 코딩을 지원
        3. JVM(Java Virtual Machine)위에서 돌아가기 때문에 이식성이 좋다(OS 상관 X)
        4. Garbage Collector 인해 메모리를 자동으로 관리
        5. 동적로딩
        6. 오픈소스 언어
      2. JAVA 만든 사람?
        • 제임스 고슬링
      3. 변수란?
        • 하나의 값을 저장할 있는 메모리 공간
      4. 객체와 클래스의 차이점?
        1. Class : 객체를 만들어 내기 위한 설계도(or ), 연관된 변수와 메소드의 집합
        2. Object : SW세계에 구현할 대상, 클래스의 인스턴스라고도
        3. Instane : 객체를 실체화 한것, 실체화된 인스턴스는 메모리가 할당됨.
      5. JAVA 메모리 영역
        1. Method 영역 : 스태틱 변수, 전역 변수, 코드에 사용되는 클래스 정보
        2. Stack 영역 : 지역변수, 함수 등이 할당됨, Last In First Out(리포 방식)
        3. Heap 영역 : new 연산자를 통해 동작할당된 객체들이 저장, 가비지 콜렉션이 메모리를 관리
      6. Abstarct Method, Abstract Class
        1. 추상 메소드 : 정의부만 있고 구현부는 비어있는 메소드
        2. 추상 클래스. : 추상 메소드를 적어도 1 이상 보유하고 있는 클래스, 자식 클래스에서 오버라이딩이 필요.
      7. JDBC : 자바에서 데이터베이스에 접속할 있도록 해주는 자바 API, 자료를 쿼리하거나 업데이트 하는 방법
      8. 직렬화 : 객체를 스트림을 통해 인풋,아웃풋하기위해 배열로 변환하는
      9. 리플렉션 : 다이나믹 랭귀지의 특징, 프레임워크에서 유연성이 있는 동작을 위해 주로 사용, 컴파일러를 무시하고 런타임시 메모리에 올라간 클래스나 메소드 정의를 동적으로 찾아서 조작 가능할 있는 일련의 행위
      10. 서블릿, JSP 차이
        1. 서블릿은 자바소스에 html코드가 삽입
        2. JSP html코드에 자바코드가 삽입
        3. 서블릿 클래스는 컴파일 과정, 등록과정이 필요, JSP 필요X
      11. request 객체 : 클라이언트에서 서버로 넘어오는 데이터를 전달받기위한 객체
        response 객체 : 서버에서 클라이언트로 데이터를 전달하기위한 객체
      12. 쿠기 : 클라이언트에서 데이터를 저장, 보안은 취약하나 속도가 빠름
        세션
        : SID 식별자로 서버에 데이터를 저장, 보안 강력, 로그인 인증에 사용
      13. XML
        1. W3C(월드와이드웹 컨소시엄)에서 권장되는 다목적 마크업 언어
      14. REQUEST 전송 방식
        1. GET : URL 쿼리 문자열에 데이터를 같이 전달하는 방식, 보안에 취약
        2. POST : 헤더에 데이터를 넣어 보내는 방법, 길이 제한이 없고, GET보다는 느림
        3. DELETE : restful에서 삭제 기능할 사용
        4. PUSH(PUT) : restful에서 수정 작업할 사용.
      15. RESTFUL : URL 보고 어떤 작업을 하는지 있게끔 데이터하나당 URL 갖도록 작업하는 방식
      16. MVC :  영역간의 결합도를 최소화한 디자인 패턴, 분업화가 쉬워지고 유지보수가 용이함.
        1. Model : 데이터 처리 접근을 담당
        2. View : 클라이언트에 보여지는 화면을 담당
        3. Controller : 모델과 뷰를 제어
      17. okky, stackoverflow : 개발자 커뮤니티 사이트
      18. react
        1. UI 위한 JS라이브러리
        2. Facebook 만든 Javascript 라이브러리
        3. 프레임워크 ㄴㄴ 라이브러리 ㅇㅋ?
        4. 특징3
          1. Component : UI 구성하는 개별적인 단위
          2. JSX : react 위한 자바스크립트 문법
          3. Vital DOM : 가상돔 기존 돔의 비효율적인면을 고려하여 개발됨
      19. aop
        • 기능을 핵심 비지니스와 공통 모듈로 구분
        • 애플리케이션 전반에 걸쳐 사용되는 기능을 재사용하도록 지원
        • 관점 지향 프로그래밍
          • 어드바이스 : 실지적으로 부가기능을 담은 구현체
          • 포인트컷 : 부가기느잉 적용될 메소드를 선정하는 방법
          • 조인 포인트 : 어드바이스가 적용될 있는 위치
          • 프록시 : 타겟을 감싸고 타겟의 요청을 대신 받아주는 랩핑 오브젝트
          • 인트로덕션 : 타겟 클래스에 코드 변경없이 신규 메소드나 멤버변수를 추가하는 기능
          • 위빙 : 지정된 객체에 애스팩트를 적용해서 새로운 프록시 객체를 생성하는 과정
        • 사용되는 경우 : 간당한 메소드 성능 검사, 트랜잭션 처리, 등등..
      20. di : 의존성 주입
        • 의존성 주입은 스프링에서 지원해주는 기능이다.
        • 객체가 아니라 프레임워크에 의해 객체의 의존서잉 주입되는 설계 패턴
        • 프레임워크에 의해 동적으로 주입되므로 객체들 간의 결합이 줄어듬
        • 종속성 감소, 재사용상 증가, 가독성 증가 등의 장점이 있다.

 

 

[OpenCV + Cpp] Testing Code(Show image)

[OpenCV + Cpp] Testing Code(Show image)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
  @file videocapture_basic.cpp
  @brief A very basic sample for using VideoCapture and VideoWriter
  @author PkLab.net
  @date Aug 24, 2016
*/
 
#include <opencv2/core.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <stdio.h>
 
using namespace cv;
using namespace std;
 
int main(intchar**)
{
    Mat frame;
    //--- INITIALIZE VIDEOCAPTURE
    VideoCapture cap;
    // open the default camera using default API
    // cap.open(0);
    // OR advance usage: select any API backend
    int deviceID = 0;             // 0 = open default camera
    int apiID = cv::CAP_ANY;      // 0 = autodetect default API
    // open selected camera using selected API
    cap.open(deviceID + apiID);
    // check if we succeeded
    if (!cap.isOpened()) {
        cerr << "ERROR! Unable to open camera\n";
        return -1;
    }
 
    //--- GRAB AND WRITE LOOP
    cout << "Start grabbing" << endl
        << "Press any key to terminate" << endl;
    for (;;)
    {
        // wait for a new frame from camera and store it into 'frame'
        cap.read(frame);
        // check if we succeeded
        if (frame.empty()) {
            cerr << "ERROR! blank frame grabbed\n";
            break;
        }
        // show live and wait for a key with timeout long enough to show images
        imshow("Live", frame);
        if (waitKey(5>= 0)
            break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}
 
cs



[Spring + Mybatis + Oracle]게시판 만들기 setting

[Spring + Mybatis + Oracle]게시판 만들기.


               




  안녕하세요:) 블로그 관리가 많이 소홀하네요ㅎ; Java계열 공부하다보니 Web부분(Html, Jsp, Js ...)까지 하고 Oracle찍고 이제 Spring을 시작하게 되었는데 되게 진도만 쭉 뺀거같아서 포만감이라해야되나 아무튼 전반적으로 해야될 것들이 많네요. 이전 Jsp MVC2 pattern도 올려야되는데 Spring MVC부터 올리게 되네요. 일단 간략하게 설명드리자면 MVC2패턴을 알고 계실 꺼라고 믿고(다음에
MVC2[Jsp, Oracle]공략 올리겠습니다.) Spring MVC pattern은 기존의 MVC2패턴의 게시판에서 하나의 파일을 수정하게되면 연관된 다른 파일들도 수정해야되는 단점이 있지만 스프링에서는 객체간의 의존성을 낮춰서(느슨한 결합) 각각의 객체의 재사용성을 높이는 등 여러가지 장점들이 많다고합니다(저도 아직 스프링에 대한 이해도가 높은 편이 아니라서 추후에 스프링에대해 자세히 올리겠습니다ㅠ)


이제부터 길어질꺼같아서 음슴체로...


 SPRING 개발 환경으로는 크게 두가지가 있는 것으로 알고있음.

1번. 이클립스 MARKET PLACES에서 STS 검색후 이클립스 툴에 스프링 설치

2번. 구글에서 STS SPRING 검색후 사이트에서 툴 설치하기

필자는 위 1번과 2번 둘다 해봤음. 처음에는 귀찮은데 그냥 이클립스에서 다해야지하고 설치후 프로젝트 생성하고 TEST해보니 이클립스가 너무 뚱뚱해졌다. 삭제하면 큰일 날 것 같다. 기존 프로젝트들도 많고, 기존(JAVA OR DYNAMIC WEB ...)프로젝트들도 많아서 구분하기도 어렵고 아무튼 이클립스가 너무 살쪘다. 그래서 2번을 설치했다. 이클립스에서 설치할때 보였던 마크(나뭇잎 마크) 사이트(아래 글에서 자세히 설명함)에서 설치해보니 기존 이클립스는 DEFAULT가 JAVA지만 STS는 SPRING으로 되어있다. 그리고 다운시 300MB정도하였고, 스프링 프로젝트는 STS 툴에만 하면되니 약간의 분류가되어 현재는 스프링 공부 및 개발은 이 툴로만 한다. 필자는 추천하며 둘 다 괜찮은 것 같음. 너무 오랜만에 블로그하다보니 서론이 길어졌는데 앞으로 스프링, 마이바티스(는 이후에 자세히 설명하겠음)+데이터베이스(ORACLE)로 만든 게시판 만들기를 길~게 작성하려고함. 



  

  Spring Project 생성 시 다른 프로젝트들과는 다르게 엄청난 디렉토리들이 있다. 각각의 디렉토리는 툴에서 자동으로 만들어 주는 만큼 이유가 있으니 만들어 놓은 것이기에 각각의 디렉토리에대한 설명부터해서 나도 아직 학생이고 어디서 개소리일수도 Spring은 설정이 반이라는 말이 있던데 처음 환경설정 할 것도 많아 차근차근 설명하겠음.


프로젝트 각각 파트별 설명

 

 

Src/main/java

Java code(Controller, Model, Service

Src/main/resources

sqlMapConfig.xml, Mybatis's mapper (Java code에서 참조하는 리소스 파일들)

Src/test/java

Test 관련 code

Src/test/resources

Test 관련 code에서 참조하는 리소스 파일들

Src/main/webapp

Web Service root directory(외부에서 접근이 가능함!)

Src/main/webapp/resources

Js, Css, Image 등의 리소스 파일

Src/main/webapp/WEB-INF/classes

컴파일된 클래스

Src/main/webapp/WEB-INF/spring

Spring 환경설정 파일

src/main/webapp/WEB-INF/root-context.xml

Servlet 관련되지 않은 모든 리소스에 대한 설정

src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

서블릿과 관련된 리소스에 대한 설정

src/main/WEB-INF/views

HTML, jsp 페이지

src/main/webapp/WEB-INF

외부에서 접근 불가능(보안), Controller 통한 경유로 접근 가능

pom.xml

Maven에서 참조하는 설정 파일

 

 

프로젝트 각각 파트별 세부 설명

 

Service :  기존 MVC2 pattern에서의 순서(Controller Model View)에서 Controller Service Model View 서비스 기능을 컨트롤러와 모델 사이에 추가해준다. Service 기능은 예로 들자면 게시판에 작성후 포인트를 부여(애매함ㅎ;)

 

Src/test/java : 개발완료(가정) TEST 납품 검수. 순서로 하는데  TEST에서는 프로그램(게시판) 테스팅하는데 있어서 자동화 과정을 "Junit"이라는 툴을 이용하여 작성할 것임.

 

※기존 MVC2에서의 content library 스프링에서는 사용하지 않고 Maven이라는 Build Tool 사용.

Maven : 자동 배포

 

<<<SETTING IS SPRING'S HALF>>>

 





SPRING 주요 특징

 

  1. POJO(Plain Old Java Object) : 별도의 API 필요하지 않은 일반적인 자바 코드를 이용하여 개발 가능.
  2. DI(의존성 주입) 통한 객체 간의 관계 구성
    • 객체 간의 의존성을 개발자가 설정하는 것이아니 스프링 컨테이너가 주입시켜 주는 기능
    • 객체를 쉽게 확장하고 재사용할 있음
  3. AOP(Aspect Oriented Programming) 지원 : 반복적인 코드를 줄이고 개발자가 비즈니스 로직에만 집중할 있도록 지원함.
  4. MVC pattern
  1. WAS(Web Application Server, <ex>Tomcat) 종속적이지 않은 개발 환경
  2. IoC(Inversion of Control, 제어의 역전) : 객체에 대한 제어권
    • 기본에는 개발자에게 제어권이 있었음(new 연산자)
    • 객체의 제어권을 스프링에게 넘김(
    • 인스턴스의 Life Cycle(생성~소멸)을 개발자가 아닌 Spring Frame Work 담당

 

의존

B 코드가 변경되면  A 코드도 변경되는 경우 A B 의존관계가 있다. 기존 MVC2에서 BoardDao.java MemberDao.java같은 경우 코드 내용이 변경될 경우 관련 파일도 변경되어야 된다. 경우를 강한 결합이며, 유지

보수의 경우에 손이 많이 가게됨.






Do SPRING Projects

 

  Eclipse에서 Market Places에서 스프링을 다운로드해서 사용해도되지만, 저는 STS Spring(이클립스랑 동일한데 설치할때부터 스프링 환경이 설정되어있는 툴을 사용하겠습니다(Site url : https://spring.io/tools/sts/all).

 

  스프링 프로젝트 생성시 new Spring Legacy Project Set Project Name & Spring MVC Project set Package → finish





이번 포스팅은 여기까지만 하겠습니다. 저도 아직 학생이라 막히던 부분도 많았고 앞으로도 많을 것이고 그때문에 막히던 부분은 다른사람들은 안 헤매었으면 하는 작은 바램이 있기에 친절히 작성하고싶지만 최근 개인적인 일들이 많아서 여기까지만 포스팅하고 빠른 시일 내에 CONTINUE 하겠슴.  

 

 


[DATABASE] 객체의 종류와 TABLE

  • 데이터베이스 객체
    • 종류

DATABASE OBJECT???

 

데이터베이스 객체로는 데이터를 저장해 놓고 꺼내 쓰는 가장 기본적인 객체인 테이블 부터 , 인덱스, 시노님, 시퀀스 등이 있는데, 대표적인 데이터베이스 객체들을 정리하면 아래 표와 같음.

 

DataBase's Object

EXPLAIN

TABLE

데이터 담고 있는 객체.

VIEW

하나 이상의 테이블 연결해서 마치 테이블인 것처럼 사요하는 객체.

INDEX

테이블에 있는 데이터를 바르게 찾기 위한 객체.

SYNONYM(동의어)

데이터베이스 객체에 대한 별칭을 부여한 객체.

SEQUENCE

일련번호 채번을

  사용되는 객체.

FUNCTION

특정 연산을 하고 값을 반환하는 객체.

PROCEDURE

함수와 비슷하지만 값을 반환하지 않는 객체.

PACKAGE

용도에 맞게 함수나 프로시저 하나로 묶어 놓은 객체.

  • 테이블
    • 테이블 생성[CREATE]

Ex)  CREATE TABLE 테이블명(

컬럼1   컬럼1_데이터타입   [NULL, NOT NULL],

컬럼2   컬럼2_데이터타입   [NULL, NOT NULL],

 . . .

컬럼3   컬럼3_데이터타입   [NULL, NOT NULL]

);

 

구성

LOW(), COLUMN()

생략가능

스키마, 테이블스페이스

 

  • 데이터 넣고 수정하고 삭제하는 데이터를 담고 있는 객체가 테이블 .
  • DBMS상에서 가장 기본적인 개체로 로우() 칼럼()으로 구성된 2차원 형태() 객체로 우리가 자주 사용하는 엑셀과 구조가 같다고 보면 이해하기 쉬울 것이다.
  • SQL 필요해 데이터를 조회, 삭제, 입력, 수정할 대상이며 결과를 담고 있는 .
  • 테이블을 설계하는 작업은 데이터베이스를 사용할 가장 기초적이고 중요한 단계임.

 

@TABLE 생성

@TABLE 생성 규칙

  1. 테이블명, 컬럼명의 최대 크기는 30BYTE.
  2. 트이블명, 컬럼명으로 예약어는 사용 불가능.
  3. 테이블명, 칼럼명으로 문자, 숫자, _ , $ , # 가능하며, 글자는 문자만 가능.
  4. 테이블에 사용 가능한 컬럼은 최대 255개임.

 

  • 데이터 타입 : column 저장되는 데이터의 타입을 가르키는 .

타입의 종류        

기본 타입(Oracle에서 제공하는 타입들)

사용자 정의 데이터 타입

 

문자 데이터 타입

설명

기본

CHAR(크기[BYTE  |  CHAR])

고정길이 문자, 최대 이천바이트

1BYTE

VARCARCHAR2(크기[BYTE  |  CHAR])

가변길이 문자, 최대 사천바이트

1BYTE

NCHAR(크기)

고정길이 유니코드 문자(다국어지원) 최대 이천바이트

1BYTE

NVARCARCHAR2(크기)

가변길이 유니코드 문자(다국어지원) 최대 사천바이트

1BYTE

LONG

최대 2기가 크기의 가변길이 문자형, 사용빈도 낮음

-

 

숫자 데이터 타입

설명

기본

NUMBER[(P, [S])]

가변숫자, P(1~38) S(-84~127) 십진수 기준, 최대 22BYTE

P=38, S=0

FLOAT[(P)]

NUMBER 하위 타입, P 1~128, 이진수 기준, 최대 22BYTE

128

BINARY_FLOAT

32BIT 부동소수점 , 최대 4BYTE

-

BINARY_DOUBLE

64BIT 부동소수점 , 최대 8BYTE

-

LONG

최대 2기가 크기의 가변길이 문자형, 사용빈도 낮음

-


 

 

 

  • 테이블 생성



 

  • 테이블 삽입

 

 

  • 파티션 테이블

@PARITION TABLE

 

테이블 내의 특정 칼럼값을 기준으로 데이터를 분할해서(파티션) 테이블을 생성하는 방법. 논리적으로는 하나의 테이블이지만 물리적으로는 분할한 만큼 파티션이 만들어져 입력되는 컬러맚에 따라 분할된 파티셧별로 데이터가 저장됨.

 

목적 : 대용량 테이블의 경우 관리 조회시 효율성과 성능을 높이기 위해.

 

Ex)

 판매회사의 대용량(100만건이라 가정) 매출정보가 담겨있는 SALES 라는 테이블이 있다. SALES에서 특정 데이터를 찾으려면 100만건을 모두 조회해봐야 한다. 인덱스를 사용하면 조금 수월해지겠지만, 그렇다하더라도 100만건을 조회하는건은 같다. 이때 판매일, 판매월과 같은 특정 칼럼들을 이용해 분할하게되면 전체를 조회하지않아도 된다.

 

 

 

 

[Example]

  • Card  테이블에 연도 (CreationTime) 컬럼을 추가하고 파티셔닝함.

 

1

2

3

4

5

6

7

8

 

create table businessCard(

ID INT NoT Null,

 Name varchar(255),

 Address varchar(255) ,

 Telephone varchar(255) , 

CreateTime DATE

) 

PARTITION BY RANGE(YEAR(CreationTime)) (

PARTITION p0 VALUES LESS THAN(2013),

PARTITION p1 VALUES LESS THAN(2014),

PARTITION p2 VALUES LESS THAN(2015),

PARTITION p3 VALUES LESS THAN MAXVALUE);  

 

Colored by Color Scripter

cs

 

 

  • 파티션 추가 와 삭제 

 

1

2

3

4

 추가

ALTER TABLE Card ADD PARTITION(PARTITION p4 VALUES LESS THAN(2005));

 삭제

ALTER TABLE Card DROP PARTOTION p4;

Colored by Color Scripter

cs

 

  • 파티션 분할 / 병합

 

1

2

3

ALTER TABLE CardREORGANIZE

 PARTITION p3 INTO(PARTITION p3 VALUES LESS THAN(2015),

PARTITION p4 VALUES LESS THAN MAXVALUE);

cs

▶ 파시션을 하여 정보를 나누웠는데도 P3에 데이터가 많은 경우 P3 P3 ,P4로 더욱 분할하는 경우

 

1

2

3

ALTER TABLE Card

REORGANIZE PARTITION p2,p3

 INTO(PATITION p23 VALUES LESS THAN(2014));

cs

▶파티션을 P2 , P3으로 만들었지만 데이터가 적어서 P23으로 병합하는 경우

 

 


[SVN, Eclipse] Subversive SVN connectors Install & SVN TEST

[SVN, Eclipse] Subversive SVN connectors Install & SVN TEST


Subclipse 설치 : 2018/04/15 - [분류 전체보기] - [SVN, Eclipse]Subclipse 4.2.3 Install

Subversive 설치 : 2018/04/15 - [분류 전체보기] - [SVN, Eclipse]Subversive - SVN Team Provider 4.0.5 Install

Visual SVN Server Install 설치 : 2018/04/15 - [분류 전체보기] - [SVN]Visual SVN Server Install


이전까지의 준비물들을 다운 받았으면 이제 제대로 연동해보자.

이번에는 마지막으로 " Subversive SVN connectors " 설치후 

프로젝트가 제대로 서버에 올라가지는지, 내려받아서 수정되는지

보여줄꺼임. 그럼


START!!




1. eclipse → Help → Install new software...

2. 하면 아래 창 뜸.




1. Work with에 " http://Subversive - http://community.polarion.com/projects/subversive/download/eclipse/3.0/update-site/ " 입력후

2. Add.

3. 목록에 subversive svn connectors, 와 subversive svn connectors Sources 두개가 뜸.

4. 둘다 체크 하고 NEXT!





1. 확인 후 next






1. NEXT




이로써 모든 재료는 준비되었음...




T  E  S  T
















































이렇게 테스트 까지 완료했다. 조금 부족한 부분이 있는거 같은데 추후에 올리겠음.

부족한 글이긴한데 이거 보고 많은 분들이 스겜했으면 좋겠다. 난 이거 5시간 넘게 걸렸다. 

[SVN, Eclipse]Subclipse 4.2.3 Install


[SVN, Eclipse]Subclipse 4.2.3 Install




이전에 

Subversive - SVN Team Provider 4.0.5 를 설치했었음(http://gjhvoid.tistory.com/9). 그거랑 다른 SVN이다. 필자는 그거로 하다 이클립스에서 서버 인식이 안되 터저버렸음. 그래서 이것을 다시 받아 정상적으로 되었음. 일단 설치방법 시작하겠음.


그리고, 서버설치는 여기 : http://gjhvoid.tistory.com/8




1. help → Eclipse MarketPlace...





1. Search   Find  svn 검색.

2. 목록에 subclipse 4.2.3 Install





1. 다운로드 목록을 받아오는 창이 끝나면 아래 그림처럼 뜸.

2. 모두 체크하고

3. Confirm





1. 동의 체크후 

2. Finish






설치가 완료되면 이클립스 Restart Now





Market Place 에 들어가면 설치되었음을 알수있음.








[SVN, Eclipse]Subversive - SVN Team Provider 4.0.5 Install

[SVN, Eclipse]Subversive - SVN Team Provider 4.0.5 Install



이전에 SVN사용을 위해 Visual SVN Server 을 설치했었음. 이번엔 이클립스에서 바로바로 협업하여 작업가능한 환경을 제공하는 SVN 설치법을 적어보려고함. 일단 이클립스와 연동되는 것들은 많다만 저는 Subversive - SVN Team Provider 4.0.5 을 사용하겠다. 기회가 되면 다른 것도 설치법을 적어보겠음.

일단 서버를 만들지 않은 분들은 2018/04/15 - [분류 전체보기] - [SVN]Visual SVN Server Install 을 참고바람.




위키백과 참조 : https://ko.wikipedia.org/wiki/%EC%84%9C%EB%B8%8C%EB%B2%84%EC%A0%84

PROJECT를 여럿이서 협업(Cooperation)해서 개발할때 유용하게 쓸수 있는 서버임. 이것 외에도 CVS나 GIT

등이 있음. 그중에서 나는 이거 쓸거임. 일단 설치 방법과 사용법을 알려줄꺼임. 그럼

아래에서 빨간색으로 박싱한곳을 주의깊게 봐주셈.

START!


1. 이클립스 실행

2. HELP

3. Eclipse Marketplace





  1. 1. Search-Find "SVN" 검색

    2. Subversive - SVN Team Provider 4.0.5 Install(저는 이미 설치했으므로 Installed)





    1. 설치항목 다운중.

    2. 기다리면 이다음 창 뜸.






1.현재창에서 박스 안 작은 원을 체크(전부선택) 후

2. Confirm 







1. 약관 동의 후

2. NEXT





1. 이클립스 창 하단에 설치중이라고 뜬다.






1. 설치완료 후 이클립스 재시작






이상으로 설치는 완료 되었습니다.




[SVN]Visual SVN Server Install



[SVN]Visual SVN Server Install





위키백과 참조 : https://ko.wikipedia.org/wiki/%EC%84%9C%EB%B8%8C%EB%B2%84%EC%A0%84


PROJECT를 여럿이서 협업(Cooperation)해서 개발할때 유용하게 쓸수 있는 서버임. 이것 외에도 CVS나 GIT

등이 있음. 그중에서 나는 이거 쓸거임. 일단 설치 방법과 사용법을 알려줄꺼임. 그럼



아래에서 빨간색으로 박싱한곳을 주의깊게 봐주셈.

START!! 




1.검색사이트에서 Visual svn Server 를 검색하셈.

2. 바로 사이트가 뜰 것임.

3. 사이트 입장하셈.


( 4. 해당 사이트 URL : https://www.visualsvn.com/server/ )




1. 아래 그림과 같은 창이 뜰꺼임.

2. DOWNLOAD 들이 보일꺼임, CLICK!






1. 자신의 PC버전에 맞게 고르셈(나는 64-bit).

2. 그럼 " VisualSVN-Server-3.8.1-x64 "다운 받겠냐고 뜰거임, CLICK!






1. 다운완료 후, 실행파일을 열면 아래 처럼 뜰거임.

2. VisualSVN-Server-3.8.1-x64참고하셈.

3. NEXT!




1. MODIFY로 설정하셈.

2. NEXT!





1. 설정사항이므로 체크안해도되는데 저는 했슴.

2. NEXT!





1. 이후에 설치 완료하고나서 이제 프로그램 실행! 

2. 잘따라오고 있음.

3. 처음 시작화면임.

4. 처음 시작하면 바로 서버는 실행됨.

5. 이전에 만든 것들 때문에 왼쪽 박스창엔 이미 난 설정되어있음.

6. 다음에서 저것들을 만들어줄거임.

7. Repositories 위에서 마우스 우클릭 후, Creat New Repository... CLICK!






1. Creat New Repository 창이 뜰꺼임.

2. 변동사항 없이 다음





1. 서버 이름 설정하는 부분.

2. 저는 test 로 했음.

3. 다음~






1. 변동사항 없이 다음





1. 밑줄친 체크박스는 이 서버에 접근하여 사용할 이용자(지금 이거 보는 님은 관리자)들에게 권한을 설정 해주는 거임.

2. 지금 아래 그림처럼 설정해도 나중에 바꿔줄 수있음.

3. 일단 아래그림처럼 설정하고 CREAT!





1. 협업을 위한 서버가 만들어 졌음

2. 밑줄 친 부분은 이제 이 서버의 주소임.

3. 해당 주소는 웹에서도 확인 가능함(확인은 이따가...).

4. FINISH!





1. 왼쪽 박스칸에 보면 test라고 새로 서버를 만듬, 위엔 이전에 만들었던 서버.

2. User에서 마우스우클릭 후 Creat User... CLICK!

3. 하면 중간 박스창이 뜰거임.


※관리자(서버)에서 유저(≒KEY)들을 만들어주고 관리자가 알려줘야됨.


4. USERNAME 과 PASSWORD 설정후 OK(메모하거나 기억하세요!)



↓          

        

↓          





1. test의(본인이 만든 서버) 우클릭 하고 properties 클릭하면..

2. 보안(security)에 해당 서버 접속가능한 유저들이 뜸.

3. 여기서 유저들의 권한들을 설정해도됨( 이전에 설치할때 기본값 한부분 )






1. 그럼이제 설치 및 서버생성과 초기 설정이 끝남.

2. 이제 만든 서버를 확인하기위해 브라우저를 여셈.

3. 이전에 확인한 서버 주소를 주소창에 치고 들어가보셈.


보안된 사이트라고 안열어질꺼임, 이때 고급에서 풀어주면 유저이름과 비번치는 팝업창이 뜰꺼임.

치면 아래 화면처럼 똑같이 뜰거임.






1. 제대로 되었는지 확인차 툴에서 새폴더를 만들고 브라우저에서 다시 확인해보셈.





1. 제대로 되었는지 확인차 툴에서 새폴더를 만들고 브라우저에서 다시 확인해보셈.





1. 이건 리눅스 서버에서 확인해본것.

2. 전에 말햇듯이 연결 안되는데 풀어주면 유저이름, 비번치는 팝업창이 뜨고...





1. 리눅스환경에서도 잘 열어짐.





이로써 Visual SVN Server Install 성공적으로 깔았음! 다음에는 Visual SVN Server와 이클립스를 연동하는 방법을 알아보겠음.

다들 좋은 하루 되었으면 좋겠음!




[JSP] SCOPE(Request, Session, Application, Page) #2

[JSP] SCOPE(Request, Session, Application, Page) #2


    • 요청 스코프(Request Scope)
      • Server Client HTTP 요청이 있을때 마다 "javax.servlet.http.HttpServletRequest Interface" 구현한 객체(A) 생성함.
      • A request scope 생명주기 동안에 객체들을 저장할 있는 key(String Type)/value(All type) 속성 쌍들의 컬렉션을 담고 있음.
      • 중요 Method
        • public void setAttribute(String name, Object obj);
        • public Object getAttribute(String name);
        • removeAttribute();   해당 스코프의 속성은  메소드로 삭제속성의 유효 범위는 요청의 존속 기간 동안임. Server 요청을 처리하면 Client에게 응답을 return, Client 자신에게 돌아온 요청(+ 요청의 속성) 사용할  없음, 따라서 JVM 가비지 컬렉션의 대상으로 설정됨.

     


    • 세션 스코프(Session Scope)
      • 컨테이너는 다중 페이지 요청이 발생하면 사용자 식별을 위해 "javax.servlet.http.HttpSession" Interface 구현한 객체(B) 생성함.
      • B 일정 시간동안 유지됨(요청 빈도를 기준으로).
      • B 소멸 시간은 Application's deployment descriptor 통해 설정하거나,  "invalidate();" 메소드를 통해 가능함.
      • request Scope 마찬가지로 key(String Type)/value(All type) 쌍으로 저장이 가능.
      • 다수의 요청에 의해 존재하는 Session Scope Request Scope보다 생명주기가 .

     


    • 애플리케이션 스코프(Application Scope)
      • "javax.servlet.ServletContext" Interface 구현한 객체가 있는 컨테이너안에 설치됨( 컨테이너 시작시 실행).
      • 가시성, 생명주기가 객체에 저장됨.
      • 애플리케이션 스코프 객체의 확인 범위는 모든 클라이언트와 발생되는 어플리케이션임.
      • 생명주기는 객체의 제거, 또는 애플리케이션이 종료할때까지.

     

    ※ Request Scope Session Scope ServletContext Lower Scope.

    ServletContext 모든 Application에서 Application Object 저장, 조회할수 있도록 .


     

    • 페이지 스코프(Page Scope)
      • JSP페이지에서 전반적으로 사용.
      • 페이지 스코프의 객체는 "javax.servlet.jsp.PageContext" 저장되고 접근범위는 객체를 생성한 JSP페이지를 통해서만 가능.
      • Client로부터 응답을 보내거나 Page 다를 자원에 Forward시키면 해당 객체의 생명주기는 없어짐.
      • 모든 JSP 페이지는 "pageContext"라는 객체 참조값을 포함(JSP 생성될 자동으로 생성).
      •  pageContext를 통해 페이지 레벨(page-level) 객체를 조회 저장 가능.

 


[JSP] SCOPE #1

[JSP] SCOPE #1

 

  • JSP에서의 유효범위(Available Scope)

 

  • Web Application 4가지 영역(JSP에서 제공하는 내장 기본 객체 9)
  1. Request
  2. Session
  3. Application
  4. Page( PageContext )
  5. . . .

 

Scope : 속성을 공유할수 있는 유효범위.

▶변수와 매개변수의 접근성과 생존기간을 제어할 있다.



  • JavaScript 유효범위의 특징(다른 프로그래밍언와 조금 다름)
    • 함수 단위의 유효범위
    • 변수명 중복 허용
    • var키워드의 생략
    • 렉시컬 특성

 



  • JSP 내장 기본 객체의 영역
      • Page(pageContext)
        • 번의 브라우저(클라이언트) 요청에 대해 하나의  JSP 페이지 호출.
        • 이유로 page영역은 객체를 하나의 페이지 내에서만 공유.
        • Page영역의 기본 객체는 pageContext 사용.

 

  • Request
    • 한번의 브라우저(클라이언트) 요청에 대해 같은 요청을 공유하는 페이지가 대응됨( 한번의 요청에 상황에 따라 공통된request영역이면 두개의 페이지가 같은 요청을 공유할 수있다 ).
    • < include Action >, < forward action > 사용하면 request 기본 객체를 고유하게 되어서 같은 영역이 .
    • 주로 페이지 모듈화에 사용됨.

 

  • Session
    • 하나의 브라우저 하나의 session객체가 생성됨.
    • 같은 브라우저 내에서는 요청되는 페이지들은 같은 객체를 공유하게 .

 

  • Application
    • 하나의 어플리케이션 하나의 application 객체가 생성됨.
    • 같은 어플리케이션에 요청되는 페이지들은 같은 객체를 공유함.

 


◀ PREV 12 NEXT ▶