[part. 1 프로젝트의 기본 구조 구성]

1.개발 환경 설정 <page 26>
-sts 설치 / 이클립스( 메이븐 프로젝트 )
-스프링 프로젝트
 Spring Starter Project(Spring Boot) :
 별도의 설정이 없으며 was없이 실행가능하다. / jsp설정은 별도로 해야한다.
 Spring Project :
 현재 실무에서 많이 사용하고 있으며 모든 버전이 스프링에서 사용할수 있으나 초반 테스트 환경 구현이 어렵고  was와 연동하는 경우 리소스 추가요구된다.
이책은  Spring Project 로 Spring Legacy project 를 사용한다.
sts >> file > new project > Spring Legacy project > spring MVC project
-maven : poem.xml의 dependency 부분 확인할것 (.m2)
-tomcat 9.0 / java 1.8 / mysql 6.3.9 / mybatis 

2.스프링의 간단한 소개 <page 49>
-프레임워크
   뼈대가 완성, 조립식 가능 
-POJO기반구성
   엔터프라이즈급 프로젝트 시스템의 복잡성으로 인한 실패 >> 이로 인해 만들어진 경량 프레임워크로 관계시  apI를 사용하지 않는 POJO의 구성으로 가능하도록 제작되었음 >> 유연성, 확장성, 디커플링
-의존을 통한 객체 간의 관계 구성
   DI(Dependency injection ) 의존
      외부에서 필요한 객체를 직접 결정하기 때문에 의존 관계를 직접 처리할 필요없고 인터페이스를 통해 유연
      한 구조 개발 가능(생성자, set메소드)
      객체를 생성하면 각 객체를 연결해주는 조립기 역할을 한다.: GenericXmlApplicationContext클래스가 xml 파일의 설정정보를
      읽어와 객체를 생성하고 연결한뒤 내부적으로 보관한다. 이렇게 생성한 객체를 보관하기 때문에 컨테이너라고 부른다. 그리고 이 
      생성된 객체들을 빈이라고 부른다. 
   IoC( Inversion of Control )  제어의 역행
      메소드나 객체의 호출작업을 외부에서 결정 >> 프레임워크에  필요한 부품을 만들고 조립가능 >> 구조를       설계할수있도록 만들어짐 
-AOP(Aspect oriented Programming)
  비즈니스 로직(core-concern)에만 집중할수있도록 횡단 관심사(cross-concern  ex 로깅, 트랜잭션)를 분리

3.예제를 위한 MySQL의 설정과 스프링테스트

4.스피링 + MyBatis + Mysql 설정

5.모델 2방식의 스프링 MVC
<목요일 진행예정>

controller  <page 105>

리다이렉트 경우 파라미터 RedirectAttributes 로 받아 속성 addFlashAttribute를 사용한후 

리턴을 return "redirect: /@RequestMapping사용

JSON 데이터를 생성하는 경우 리턴타입 @ResponseBody 클래스 반환 


6.스프링 + Mybatis <page 126>

-mysql : book_ex스키마에 tbl_member 생성

create table tbl_member (
    userid varchar(50) not null,
    userpw varchar(50) not null,
    username varchar(50) not null,
    email varchar(100),

    regdate timestamp default now(),
    updatedate timestamp default now(),
    primary key(userid)
)

timestamp 사용시 서버시간 UTC 기준이므로 timezone 유의

 -도메인 객체를 위한 클래스 설계 

도메인 :  분리가 가능한 단위 

-DAO인터페이스 작성

-XML Mapper작성

참고사이트 http://www.mybatis.org/mybatis-3

-mybatis-spring에서 xmlMapper인식 

-DAO인터페이스 구현

  sqlSessionTemplete : mybatis의 데이터베이스의 연결을 맺고 작업이 완료된 후 작업을 close 하는 클래스

SqlSessionTemlate은 sqlSessionFactory를 생성자로 주입해서 설정한다. 


첨부파일은 <page 138>까지 실행한 프로젝트 

ex_0.zip


트러블슈팅

에러 : Access denied for user 'zerock'@'localhost'

이유 : mysql 외부 접속 권한 없어 root-context.xml의 dataSource bean을 생성하지못함

해결 : 사용자계정에 권한부여  참고 사이트 : http://withcoding.com/36 




'STUDY > SPRING' 카테고리의 다른 글

TRANSACTION  (0) 2018.11.06
MVC  (0) 2018.11.02
[코드로 배우는 스프링 웹프로젝트]  (0) 2018.10.31
Annotation  (0) 2018.10.30
스프링 컨테이너와 빈  (0) 2018.10.30

같은 것을 봐도 관점에 따라 사람마다 다르다.

그래서 사람들은 각자의 생각으로 다른 해석을 한다.

내가 무엇을 보느냐가 중요한 것이 아니라 어떤 사고를 하느냐가 모든 것을 결정한다. 


어른스럽지 못한 나도 싫지만 아이만도 못한 어른이 되는 것은 더욱 싫다. 

지금 행복이 미래의 나를 만든다. 

미래의 나에게 사과할 만한 선택은 만들지 말자. 

그리고 미래의 나는 반드시 지금보다 나를 더 알고 있어야 한다. 

평생 나자신을 알아가는 것이 숙제이고 나에 대해 사고 하는 것은 숙명이다. 

나를 어떻게 생각하는 타인의 생각보다 나를 위한 것들로만 존재하는 내 시간이 중요햐다.


반드시 그런 선택을 하자.  


'THINK' 카테고리의 다른 글

무제  (0) 2018.10.31
이해  (1) 2018.09.04
2018-09-01  (0) 2018.09.01
온도의 차이  (0) 2018.08.30
2018-08-30  (0) 2018.08.30

한사람을 온전히 이해하기 까지
얼마만큼의 시간이 걸릴까,
살아온 세월의 희노애락중 얼마나 함께 했다고 난 친근감을 표시하며 나 자신을 내놓고 있는것인가

누군가를 이해하고 내편으로 만드는 일은 참 어렵다
그리고 내편으로 만들어도 그 관계를 유지하는 것은 더 복잡한 일이다
하지만 끊임없이 이런 관계를 만들기 위해 노력하고 그 속에서 사람들과 나 사이의 "거리"를 찾아나간다
그리고 도전과 실패를 거쳐 사람마다 차등을 두어 일정한 관계를 유지한다

하지만 가끔 그 거리가 무너져서 없어질때가 있다
누군가를 온전히 이해하고 나도 나로써 존중받기 위해 최소한의 거리가 필요함을 알지만
가끔 나를 다 내려놓고 만나고 싶은 사람들이 있다.

내편이면 다 퍼주고 무조건 이해하려는 습관은 버려야지 하면서 고치기 참 어렵다,
한 사람, 한사람 이해하고 그대로 받아들이는 그 노력의 보상심리처럼 어느새 난 그사람이다,








'THINK' 카테고리의 다른 글

무제  (0) 2018.10.31
관점  (1) 2018.10.28
2018-09-01  (0) 2018.09.01
온도의 차이  (0) 2018.08.30
2018-08-30  (0) 2018.08.30
기초 웹 개발 공략서  -제이펍출판사
1.웹 기술 총정리 
2.코딩기초지식
3.설계의 첫걸음
4.데이터베이스 & SQL입문
5.클라우드 시대의 인프라 지식 

1.웹 기술 총정리 
 1-1.웹의 세계
 Www는 다음 세가지 요소로 부터 시작한다. 
Url : 데이터는 어디에 있는가 
Http:// 어떤 방법으로 데이터를 가져갈 것인가? 
Blog.livedoor.ip //서버(host)는 어떤 것인가?
/danko/serarch //서버내의 위치는 어디인가?
?q=web //질의는 무엇인가?
정보 그 자체를 나타내는 URL 

Http : 데이터는 어떻게 손에 넣는가?
Http 이전의 프로토콜은 이것보다 필요 이상으로 복잡함 >> FTP( file Transfer protocol ) 은 메타데이터를 교환하는 포트와 데이터를 교환하는 포트가 별도로 존재하므로 
직적접인 커맨드로 서버와 대화한다는 것은 지극히 여러운 일이었다 

Html: 데이터는 어떻게 표현하는가?
Html 자체는 언어가 아니며 프로그래밍을 위한 기술방법이다. 
초기에 클라이언트는 html의 보기에 전념하고 서버에는 html을 생성하는 프로그램을 만들면 좋지 않을까? 
웹 브라우저는 말 그대로 서버가 전송한 html을 그냥 보기만 하는 도구였다. 하지만 현재 웹 브라우저를 탑재하고 있는 현재의 클라이언트는 고급 처리 능력을 지니고 있다.
 >> 언어를 추가로 넣을 수 있는 언어가 html이다 

예를 들어 펄, php, 파이썬, 루비등 이른바 p 언어에는 정규표현이라는 언어 내 언어가 모두 탑재 되어있다.
현재 html의 필수언어는 자바스크립트 ,css ,html 자신이다. 

자바스크립트 
자바스크립트는 다른 언어이나 마케팅상의 사정으로 그러한 이름이 되었다. 어디까지나 클라이언트측 웹 프로그래밍은의 주류는 자바 애플릿이었고 자바스크립트는 덤의 위치에 있었다. 
 자바 애플릿은 먼저 자바를 컴파일하여 클래스파일을 만든후 html파일에 별도의 obj태그등으로 로딩해야한다. 초기의 jvm은 느렸고 이런 이유로 자바 애플릿은 더 무거웠다. 그러던중 자바애플릿이나 자바스크립트냐의 문제에서 새로 화두된것이 플래시였다.
자바스크립트보다 고기능이고 자바보다 가벼운 플래시는 순식간에 보급되었다. 
 하지마 플래시는 자바 애플릿보다 html의 외부에 있다. 플래시와 같은 웹 브라우저 플러그인의 경우는 웹 페이지 안에 전혀 다른 세계로 구축할 수 밖에 없었다. 그리고 애플은 플래시를 거부했다. 
 오픈되어 있지 않다. 전혀 웹 적이지 않다. 안정적이지 않다. 전력 소비가 많다. 이런 추가적인 이유이다. 
이런 논쟁중에 html5는 플래시를 대체할수있는 언어가 되었다. 

1-2.개발 언어 총정리
처음 등장한 것은 CGI( Common Gateway interface) 이다 
정적인 문서를 살펴보기 위한 도구였다 말 그대로 어떤 인터페이스여도 상관없다. C. C++, java, 파이선이든 모든 ok 이다. 

HTML을 프로그램에 모두 작성하기보다는 HTML 안에 프로그램을 집어 넣으면 좀더 편리 할것이라는 생각으로 적합했던 것이 PHP다.

컴파일 언어 : 소스 코드로 부터 실행파일(바이너리)를 생성한 후 그것을 실행하는 언어이다. 처리속도가 빠르다. ( c.c++ )
스크립트 언어: 자바 스크립트, php, 펄, 파이썬, 루비 대입되 시점에 정해진다. 
  -펄 : 웹프로그래밍의 첫번째 언어이다. 고부하 환경을 요구하는 곳에서 주로 쓰이며 p언어의 대표적이다. 
  -루비 : 동적 언어에서는 드물게 공식 규격을 가지고 있다.
  -파이썬 : 구글 앱 엔젠의 개발언어 
 
자바스크립트는 웹 브라우저간 다르다. Ie와 firefox의 쓰임은 동일한 중국어라 할지라도 북경어와 광동어 차이처럼 다르다. 
이걸 해소시켜주는 것이 j-query이다. 
 
그리고 필요한 데이터만 서버에 질의하여 그것을 클라이언트가 가공하여 표시할 필요가 있다에서 나온 것이 ajax이다. 

1-3 서버 총정리
웹 어플리케이션이란 무엇인가? 
Http/https라는 프로토콜을 통해 요구돈 기능을 제공하는 것이다. 

현재 웹 서비스들은 정적 콘텐츠 + 동적콘텐츠를 조합하여 만들어져있다. 
 다수의 클라이언트로 부터 접속을 기다리다가 수신된 요청에 대해 적절한 형식을 적절한 응답을 반환한다. 그떄 동시에 접속을 허가하는 클라이언트수의 제한 및 각종 안전과 보안, 로그의 기록, 인증 제어 및 암호화 처리등 http/https의 제어에 필요한 여러가는 기능한다. 
 
 애플리케이션 서버(AP) : 클라이언트로부터의 요청을 해석하여 그 클라이언트에 반환해야 할 다양한 정보를 모아 최종적으로 문자 데이터로 교환해 html로 출력한다. 
 역 프록시 서버 : 받은 요청에 대응하는 어플리케이션 서버중 하나를 선택하여 요청을 보다고 응답을 받아 반환한다. 
                         클라이언트로부터의 접속수를 제한하고 로그의 기록, 페일오버, 라우팅 역할을 한다. 
 캐시서버 : 클라이언트에 반환되는 응답의 내용을 일시적을 보관하여 동일요청이 있을때 고속으로 반환한다. 

실제 웹 어플리케이션은 이러한 각종 서버를 조합하여 구성한다. 
그리고 이러한 서버로 자주 사용되는 몇가지가 있다.
 -Apache http server 
 -nginx
 -microsoft internet information( IIS ) .. 

AP 서버 전용의 소프트웨어
애플리케이션 서버는 동작시키는 프로그램이 어떤 언어로 작성되었는가가 중요하다.

1-4 데이터베이스의 총정리
1-5 클라우드 총정리 
인프라 구축/운용
 서버 머신의 설치 장소, 전원의 확보
 네크워크 회선
 Os와 미들웨어
 각 하드웨어 고장 시의 대응, 중복화 
 각종 모니터링
 운용 플로우 

클라우드란 인터넷 상에서 서비스로서 존재하는 컴퓨팅 리소스를 사용하여 사용자에게 애플리케이션 서비스나 하드웨어 리소스를 제공하는 새로운 컴퓨터의 이용형태를 가르킨다. 
>> 인터넷상에서 미리 준비된 서버나 스토리지, 또는 애플리케이션을 이용 시간이나 이용량에 따라 대여할 수 있다는 것이다. 

시스템 운용을 아웃소싱하기 >> aws 
 스토리지의 용량 및 파일 엑세스에 관한 동시접속수, 중복화, 재해복구, 스토리지의 유지보수등 많은 제한이 해결된다. 

클라우드의 종류
SaaS software as a service 클라우드 서비스를 제공하는 모델 
 >> 웹 브라우저만 설치되어 있으면 곧바로 메일 송수신을 할 수 있다  >>지메일, 구글 드라이브등 

PaaS platform as a service 시스템의 플랫폼을 클라우드 서비스로 제공하는 모델
>> 애플리케이션을 동작시키기 위한 웹 서버나 엔진, 데이터베이스등이 있고 백업, 중복화, 자동확장, 시스템 관리툴이라는 운용과 관련된 구성이다. 일반적으로 애플리케이션을 구현하고 그것을 구동시키기 위해 설비, 네크워크, 하드웨어, 미들웨어, os 등 플랫폼을 제공할 필요가 있다. 
>> 구글 웹 엔진 , 헤로쿠

IaaS - infrastructure as a service 
Cpu나 메모리, 디스크 하드웨어 리소스를 클라우드 서비스로 제공하는 모델 
이전부터 존재하던 인터넷상의 랜탈 서버 형식의 호스팅 서비스등을 말한다. PaaS와의 차이점은 플랫폼이다 밴더가 제공하는 플랫폼을 사용할수밖에없지만 Iaas에서는 os보다 위의 레이어르 자유롭게 커스터마이즈 할수있다. 플랫폼을 자유롭게 설계할수있으므로 기존 자사의 운용하고있는 시스템을 클라우드로 이행할때는 유용하다. 
>>아마존 웹 서비스 












































잊어버린 기억은 마치 퍼즐조각같아서 찾을려고,
구석구석을 아무리 뒤져봐도 나오지 않는다

신이 인간에게 준 최고의 선물은 망각이라는데,

어쩌면 이미 잃어버린 조각이라면,
찾으려 애쓰지 않아도 될지도 모르겠다.

장면중 중요한 하나가 빠져있든,
내가 질문한 말의 대답이였든,
호기심중 명쾌한 정답이었든,
설레는 너의 말들이였든,
퇴근 준비중 들은 야근의 시발점이든,
그게 행복한 기억이든 슬픈 말들이든

잊어도 될꺼면 잊어도 된다.

'THINK' 카테고리의 다른 글

관점  (1) 2018.10.28
이해  (1) 2018.09.04
온도의 차이  (0) 2018.08.30
2018-08-30  (0) 2018.08.30
2018-08-29   (0) 2018.08.29

사람들마다 자신의 소중한 사람을 지키기 위해 노력한다
그리고 자신이 그 상대방을 얼마나 좋아하는지 알리기위해 감동적인 행동이든 강압적인 표현이든
부던하게 노력한다 나는 너를 이만큼 좋아하고 있다고,

 그 경계에서 나를 넣어줄지 밀어줄지 고민하는 사람들이 밉다가 못내 이해하고 내편에 거꾸로 상대방을 밀어넣는다,
사람들 저마다 다르지, 소중의 정도에 따라 내 곁에 두고싶은,
그 중요도에 따라 사랑받고 있음이 느껴지는 온도차도 많이 다르지 라고 이해해본다
 자기 말만 하는 사람도, 무심히 남일에 관심없는 사람도
각자의 삶의 방식으로 누군가를 대하고 진심으로 말해주고 있다 

나쁜사람, 이기적인 사람 그런게 아니라 조금 다른 시각으로 그런 상황들이 있고 다들 각자의 방식으로 문제를 풀어나간다는 것.
그리고 더 중요한건 혼자 좌절하고 낙담하는 사이 상대방도 부단히 나를 이해하기위해 시간을 할애하고 나와 다른 방식으로 문제에 접근한다는 것이다

 사람과 사람관계에서 잊지 말아야 할것
남은 나와 다르며 내가 노력하는 만큼 상대방도 그 사람의 방식으로 나에게 자신의 온도를 전달하기 위해 부단히 노력한다는 것이다


'THINK' 카테고리의 다른 글

이해  (1) 2018.09.04
2018-09-01  (0) 2018.09.01
2018-08-30  (0) 2018.08.30
2018-08-29   (0) 2018.08.29
1.  (0) 2018.08.27

vert.x 

verticle 생성 후 작업중인 스케줄러 동작시 서버관리 및 failover시 처리   


-cluster

서버 클러스터링이랑 두대 이상의 서버가 하나의 서버가 처리하는 것 처럼 보이도록 서버들 간의 확립된 연결을 만들어 놓은 것을 말한다. 

장애 대응 시스템 및 부하분산 시스템, 병렬 처리 프로세싱에 사용 될수있는 기술이다. 

클러스터링 서버들간의 데이터의 동기화 

 

-fail over 

운영중인 서버가 멈췄을때 대기 중인 서버를 운영서버로 장애처리 작업을 해야한다. 

master 서버와 standby 서버를 구성하고 있는 master 서버가 fail시 stanby 서버가 자동으로 서버의 역활을 한다. 

stanby서버는 평상시에 대기상태로만 있다가  master서버가 fail될 경우만 작동을 한다. 이 구성을 fail over라고 한다. 


LoadBanlancing

서버의 로드를 클러스터링된 서버별로 균등하게 나누어 주는 서버 , 서버의 사양과 처리량에 따라 차별적으로 분배해준다. 

장애 대처 능력이 향성되며 유지 관리에 효율적이다. 

 역프록시의 한계 

 많은 엑세스가 증가하는 서비스인 경우 프록시 서버가 모든것을 해결할수없다. 이러한 경우 역프록시 서버나 웹 서버보다도 앞에 로드 밸린서라는 것을 도입한다. 

 네트워크 기능과 서버 소프트웨어의 중간과 같은 존재이다. 또한 다른 서버와 동일하게 리눅스등이 인스톨된 서버를 두어 LVS(Linus Virtural server) 사용하는 경우도 있다. 



high Availability(HA)

 서버와 네크워크 등 시스템이 지속적으로 정산 운영 가능하도록 하는 기술 


https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0


>> verrtx.sharedData().getLockWithTimeout()를 이용하여 lock 실행한후 어느 서버가 마스터 인지 체크 후 master 서버에서만 스케줄러가 작동한다.  

>> 자신이 설계한 로직들이 서버에 어떤 부하를 줄지, failover의 상황에 어떤 결과를 줄지 고려하여 설계할 것


'STUDY > PROGRAMMING' 카테고리의 다른 글

웹 개발 공략서  (0) 2018.09.02
2. GRADLE ( 도서: gradle 철저입문 )  (0) 2018.08.27
1. Blocing / NonBlocking & Synchronous / Asynchronous  (1) 2018.08.27

사람마다 자신이 쌓아온 겹이라는게 있다
그리고 그 겹들이 모여 산이 만들어진다

그 겹들의 깊이에 따라 동네 뒷산이 될수도, 커다란 산이 될수도 

모두 그 사람의 몫이다


산이 크고 웅장하다하여 누군가가 갈 수 있는 길이 있거나 생명이 자랄 수 있는 대지를 가지고 있는 것은 아니다

내 인생의 겹을 돌이켜 보면 내가 만들어 놓은 길은 어떻게 생겼을까, 

길은 커녕 공간도 너무 작아서 누군가가 답답해 숨쉬기 조차 버겁진 않았을까,

 

누군가를 알아가는 건 등산하는것처럼 천천히 자신의 페이스를 놓치않고 그 사람속에 내가 스며들어가는것,
그 산을 바꾸지않고 정복하지않고 오로지 나만의 공간을 만들어 하나가 되는 것,

산이라기도 거창한 나의 작은 동산 꼭대기엔,
그대가 쉴수있는 오두막 하나있는 내가 되길,

놀러와요 우리집에 :)


'THINK' 카테고리의 다른 글

이해  (1) 2018.09.04
2018-09-01  (0) 2018.09.01
온도의 차이  (0) 2018.08.30
2018-08-29   (0) 2018.08.29
1.  (0) 2018.08.27

십년도 더 지났지만 그 계절, 그 날씨가 오면
그때의 느낌은 잘 잊혀지질 않는다.
비가 얼마나 오는지 물어보는 누군가의 질문에 ,
유리창 넘어 다닥다닥 붙어있는 비오는 동네를 내려다 보다
멍하니 기억속에 내가 유리 밖으로 나가버렸다.
문득 어디서 많이 본 장면인데... 되새기다 슬며시 너가 내 생각위로 떠올랐다.

그때 내가 현명했다면 우리들의 현재는 행복했을까,
그때 내가 따뜻했다면 넌 한번 더 다시 생각했을까,

비오는 날 참 좋아하는데,

누군가의 기억속에 너는 아직 움직이고 있으니 잊혀지지 않은거라고,
하늘에선 외롭지도, 아프지도 않고 너가 행복했으면 좋겠어

'THINK' 카테고리의 다른 글

이해  (1) 2018.09.04
2018-09-01  (0) 2018.09.01
온도의 차이  (0) 2018.08.30
2018-08-30  (0) 2018.08.30
1.  (0) 2018.08.27


+ Recent posts