https://jacesky1.wordpress.com/2016/03/27/aws-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%EB%A1%9C-%EC%B2%9C%EB%A7%8C-%EB%AA%85%EC%9D%B4-%EC%93%B0%EB%8A%94-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0/
2017년 10월 18일 수요일
EC2 AWS 마켓플레이스 를 이용해서 WordPress 서비스 생성하기
AWS 마켓플레이스를 이용하면 여러가지 미리 세팅된 서버 서비스를 쉽게 생성할수 있다.
마켓플레이스에서 해당 상품의 정보에 이런저런 정보가 있는데 보통 거기서 서비스의 초기 비번등을 알아낼수있다.
wordpress bitnami 의 경우는 instance 에서 오른쪽버튼->instance setting->get system log 에서 보면 bitnami 의 초기 app 비번(랜덤인듯) 이 보이는데 이를 복사해서
워드프로세스 어드민 /wp-admin/ 에 접속시 user,비번 입력하면된다.
추가, mysql root 비번도 동일하다.
마켓플레이스에서 해당 상품의 정보에 이런저런 정보가 있는데 보통 거기서 서비스의 초기 비번등을 알아낼수있다.
wordpress bitnami 의 경우는 instance 에서 오른쪽버튼->instance setting->get system log 에서 보면 bitnami 의 초기 app 비번(랜덤인듯) 이 보이는데 이를 복사해서
워드프로세스 어드민 /wp-admin/ 에 접속시 user,비번 입력하면된다.
추가, mysql root 비번도 동일하다.
Amazon EC2 - putty 를 이용하여 Instance 접속하기
http://devstory.ibksplatform.com/2017/08/aws-windows-linux-putty.html
http://hyeonstorage.tistory.com/271
Amazon Service - EC2
By schoolhompy at 10월 18, 2017
No comments
EC2 가상화된 서버 리소스를 제공
-Instances : 인스턴스 하나가 컴퓨터 한대 개념
-Instances : 인스턴스 하나가 컴퓨터 한대 개념
Amazon IAM 설정 (좀더 안정적인 인프라 운영)
아마존 콘솔에서 Identity and Access Management 를 선택한다.
Activate MFA on your root account 는 구글 opt 에서 숫자 여섯개 두번 입력 해서 MFA 활성화 한다.
참고 영상 : https://opentutorials.org/course/2717/11269
Activate MFA on your root account 는 구글 opt 에서 숫자 여섯개 두번 입력 해서 MFA 활성화 한다.
참고 영상 : https://opentutorials.org/course/2717/11269
2017년 10월 13일 금요일
IOS 면접질문집-일어
By schoolhompy at 10월 13, 2017
No comments
http://nsblogger.hatenablog.com/entry/2016/12/24/ios_interview
2017년 10월 12일 목요일
딥러닝과 OpenCV를 활용해 사진 속 글자 검출하기
By schoolhompy at 10월 12, 2017
No comments
최원효님 블로그 에서 발췌
좋은 글인거같아요
http://d2.naver.com/helloworld/8344782
좋은 글인거같아요
http://d2.naver.com/helloworld/8344782
2017년 10월 6일 금요일
Vue.JS 해볼까나~
일단 공식문서 부터..한글로 잘되어 있다
https://kr.vuejs.org/v2/guide/index.html
MVVM 방식에 컨포넌트 기능을 살려 재사용성을 높인다라는 건 좋을것 같다
참고 사이트들
http://meetup.toast.com/posts/99
https://kr.vuejs.org/v2/guide/index.html
MVVM 방식에 컨포넌트 기능을 살려 재사용성을 높인다라는 건 좋을것 같다
참고 사이트들
http://meetup.toast.com/posts/99
https://vuejs-kr.github.io/
http://blog.naver.com/PostView.nhn?blogId=psj9102&logNo=220979693930&parentCategoryNo=&categoryNo=36&viewDate=&isShowPopularPosts=true&from=search
http://blog.naver.com/PostView.nhn?blogId=psj9102&logNo=220979693930&parentCategoryNo=&categoryNo=36&viewDate=&isShowPopularPosts=true&from=search
2017년 10월 3일 화요일
2017년 10월 2일 월요일
IOS 11 , SWIFT4 에서 카메라로 찍은 사진 앨범으로 저장안되고 에러날때
[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
에러가 뜰때는
info.plist 에
Privacy - Photo Library Additions Usage Description 속성으로 YES 값 넣어주면 잘됨
2017년 10월 1일 일요일
Cloud9 에서 Laravel 을 실행해보장
아래 자세한 설명 고마워요. 설치하고 세팅하는거 징그럽게 싫어 하는데 설명이 잘되어 있네요.
https://community.c9.io/t/laravel-5-3-installation-on-cloud9/9038
단
DocumentRoot /home/ubuntu/workspace/public 요거 설정하라고 되어 있는데.
내경우에는
DocumentRoot /home/ubuntu/workspace/laravel/public 로 해야 이쁜 라라벨 첫페이지가 뜸.
https://community.c9.io/t/laravel-5-3-installation-on-cloud9/9038
단
DocumentRoot /home/ubuntu/workspace/public 요거 설정하라고 되어 있는데.
내경우에는
DocumentRoot /home/ubuntu/workspace/laravel/public 로 해야 이쁜 라라벨 첫페이지가 뜸.
Android 25-new-android-libraries
https://medium.freecodecamp.org/25-new-android-libraries-which-you-definitely-want-to-try-at-the-beginning-of-2017-45878d5408c0
30 new Android Libraries
https://medium.com/@mmbialas/30-new-android-libraries-and-projects-released-in-summer-2017-which-should-catch-your-attention-d3702bd9bdc6
2017년 9월 28일 목요일
30 Resources for Android Developers
By schoolhompy at 9월 28, 2017
No comments
https://blog.udacity.com/2015/06/30-android-developer-resources.html
2017년 9월 26일 화요일
ruby style guide 관련
루비 스타일 가이드 : https://github.com/bbatsov/ruby-style-guide
에어비엔비의 스타일 가이드 : https://github.com/airbnb/ruby#whitespace
루비스타일가이드 분석 http://batsov.com/rubocop/
에어비엔비의 스타일 가이드 : https://github.com/airbnb/ruby#whitespace
루비스타일가이드 분석 http://batsov.com/rubocop/
Ruby On Rails - Cloud9 에서 테스트 개발 해보기
http://blog.naver.com/PostView.nhn?blogId=dg_667&logNo=220616006452&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView
여기에 있는 것처럼 Cloud9 에 가입해서 루비온레일즈 로 게시판을 만들어 보았다.
비지니스 로직이 들어갈 모델관련 파일은
rails g model 모델명 라는 식으로 생성한다.
그러면 db/migrate/ 밑에 테이블 정의하는
t.string:cell2
t.text:comment
처럼 추가한다.
그리고 나서
rake db:migrate 를 실행해서 실제 디비에 테이블이 생성되도록한다.
이제 게시판의 글목록,쓰기,보기,삭제 등을 구현해야 하는데,
일단
http://blog.naver.com/PostView.nhn?blogId=dg_667&logNo=220638145196&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView
이곳을 참고하여 본다.
현재 board_controller.rb 의 write,list,view,list, delete 메소드(def)에 아무것도 없는데 각각 채워넣어주면된다.
def list
@table1 = Table1.all
end
하고
list.html.erb에선
<%@table1.each do |tablecell|%>
<p><%=tablecell.cell1%></p>
<%end%>
하면 출력끝..오...
등록은
def register
if params[:cell1].present? && params[:cell2].present?
table1 = Table1.new
table1.cell1 = params[:cell1]
table1.cell2 = params[:cell2]
table1.save
else
puts "no data"
end
redirect_to action:"list"
end
function 을...왜 def 로 했을까...
def sipal(num1, num2)
return num1 + num2
end
이나..
function sipal(num1, num2)
return num1 + num2
end
이나...
좋은지 모르겠음..
여기에 있는 것처럼 Cloud9 에 가입해서 루비온레일즈 로 게시판을 만들어 보았다.
비지니스 로직이 들어갈 모델관련 파일은
rails g model 모델명 라는 식으로 생성한다.
그러면 db/migrate/ 밑에 테이블 정의하는
t.string:cell2
t.text:comment
처럼 추가한다.
그리고 나서
rake db:migrate 를 실행해서 실제 디비에 테이블이 생성되도록한다.
이제 게시판의 글목록,쓰기,보기,삭제 등을 구현해야 하는데,
일단
http://blog.naver.com/PostView.nhn?blogId=dg_667&logNo=220638145196&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView
이곳을 참고하여 본다.
현재 board_controller.rb 의 write,list,view,list, delete 메소드(def)에 아무것도 없는데 각각 채워넣어주면된다.
def list
@table1 = Table1.all
end
하고
list.html.erb에선
<%@table1.each do |tablecell|%>
<p><%=tablecell.cell1%></p>
<%end%>
하면 출력끝..오...
등록은
def register
if params[:cell1].present? && params[:cell2].present?
table1 = Table1.new
table1.cell1 = params[:cell1]
table1.cell2 = params[:cell2]
table1.save
else
puts "no data"
end
redirect_to action:"list"
end
function 을...왜 def 로 했을까...
def sipal(num1, num2)
return num1 + num2
end
이나..
function sipal(num1, num2)
return num1 + num2
end
이나...
좋은지 모르겠음..
Ruby On Rails - 기초 설정
일단 앱의 configure 폴더에
environments , initializers , locale , database 등의 설정파일과 폴더가 있다.
환경은 개발, 배포, 테스트 버젼으로 각각 설정할수 있다.
http://guides.rorlab.org/configuring.html 참고
기본 예약어 등은 http://gnuteam.tistory.com/118 여기서.
environments , initializers , locale , database 등의 설정파일과 폴더가 있다.
환경은 개발, 배포, 테스트 버젼으로 각각 설정할수 있다.
http://guides.rorlab.org/configuring.html 참고
기본 예약어 등은 http://gnuteam.tistory.com/118 여기서.
Ruby On Rails 를 알아보자 - 개요
루비 온 레일즈를 알아보기 전에 공식 사이트의 설명을 보자
http://rubykr.github.io/rails_guides/getting_started.html
레일즈는 루비 언어로 작성된 웹 어플리케이션 프레임워크
철학
-DRY – “Don’t Repeat Yourself (반복하지 말 것)”
-CoC , Convention Over Configuration
-REST
MVC 아키텍쳐 기반임
프로젝트 생성
콘트롤러 생성 : $ rails generate controller boardController write list ...
콘트롤러생성후 라우터에 콘트롤러가 있다는 것을 지정
config/routes.rb
root
:to
=>
"home#index"
일반적인 게시판 류는 그냥 스캐폴드 로 생성
$ rails generate scaffold Post name:string title:string content:text |
파일 | 목적 |
---|---|
db/migrate/20100207214725_create_posts.rb | 데이터베이스에 ‘posts’ 테이블 생성하는 마이그레이션 (여러분의 파일 이름은, 다른 타임 스템프 값을 가지고 있습니다.) |
app/models/post.rb | Post 모델 |
test/fixtures/posts.yml | 테스트를 위한 더미(Dummy) posts |
app/controllers/posts_controller.rb | Posts 컨트롤러 |
app/views/posts/index.html.erb | 모든 posts 를 출력하는 index 뷰 |
app/views/posts/edit.html.erb | 존재하는 post 를 수정하는 edit 뷰 |
app/views/posts/show.html.erb | 단일 post를 보여주는 show 뷰 |
app/views/posts/new.html.erb | 새로운 post 를 만들기 위한 new 뷰 |
app/views/posts/_form.html.erb | post 를 수정하거나 새로 만드는데 사용되는 폼(form)을 저장하는 조각(partial) 파일 |
app/helpers/posts_helper.rb | post 뷰를 위한 헬퍼(Helper) 함수를 위한 파일 |
test/unit/post_test.rb | posts 모델을 위한 유닛 테스트 파일 |
test/functional/posts_controller_test.rb | posts 컨트롤러를 위한 기능 테스트 파일 |
test/unit/helpers/posts_helper_test.rb | posts 헬퍼(Helper)를 위한 유닛 테스트 파일 |
config/routes.rb | posts 를 위한 라우팅 정보를 담은 수정된 라우팅 파일 |
public/stylesheets/scaffold.css | 발판(Scaffold) 뷰를 좀 더 미려하게 만드는 CSS파일 |
2017년 9월 25일 월요일
스프링 프로젝트 개발 전에 알아 두어야 할것들
스프링 3 & 4
- EJB 의 폐쇄적이고 상속 위주의 단점을 극복하고자 만든 프레임워크, 톰캣이 가능하다..ㅋ
- 오픈소스로 만들어진 안정적인 프레임워크
- 자바로 웹 또는 실행 애플리케이션을 만들 때 사용할 수 있는 프레임워크
- 자바로 네트워크 연결, 디비 연결등 귀찮고 짜증나는 작업을 쉽고 편하게 지원하여 , 비지니스 로직 개발에만 전념할수 있도록 해줌.
- POJO 방식을 지우너하고 경량 컨테이너를 지원함으로서 프레임워크에 종속되지 않는 개발 방식이 가능
-- POJO : 특정 라이브러리를 상속하지 않고 자바 자체의 구현 함수만으로 프로그램이 제작 가능한건.
-- 경량 컨테이너 : 프레임워크를 전부 로드하는 게 아니라 필요한 기능한 사용가능한 경량 컨테이너 방식
- 의존성주입, 관점 지향 컨테이너, 포터블 서비스 추상화
--의존성 주입 : 헐리우드 법칙, 내가 필요해서 요청하는게 아니라 , 스프링에서 필요한 부분에 호출해 준다. 즉, 빈 컨테이너 (컨테이너 박스) 에 내가 사용할 빈을 미리 등록해 놓으면, 스프링이 해당 부분에서 알아서 빈을 꺼내서 주입해 준다. 프로그램 내에서 사용할 객체를 이것저것 new 하는게 아니라, 빈 컨테이너를 통해 사용함으로서 객체간의 의존성을 최소화함.
-- 관점지향 컨테이너 : 여러 객체에서 공통으로 적용되는 공통관심사항(트랜잭션,로깅,보안등)을 특정 메소드,필드가 실행되기 전후,예외발생등의 시점에 실행해 주는 것을 관리, 기존의 방식이라면, 매번 해당 기능을 호출하고 관리해야 되므로 문제가 생기던것을, 훅 과 같은 방식으로 처리.
-빈 객체의 생성,소멸과 같은 라이프 사이클을 관리
-데이터 베이스 접근의 일관성.
[참고].MAVEN 필요 라이브러리 관리툴
jar 를 library , plugin 등의 폴더에 다운받아서 저장 하는 귀찮은 과정을, Maven 이 대신 해줌.
단순히 다운로드 뿐만 아니라, 모듈간 의존성을 관리해줌.
스프링 뿐만 아니라 기존 프로젝트도 메이븐 프로젝트로 변경할수 있음.
최신의 이클립스에는 기본으로 탑재되어 있음.
또 하나의 기능은 빌드 기능이다. 프로젝트를 컴파일,테스트,패키징,인스톨 과 같은 빌드 라이프 싸이클을 설정하여, 한번에 컴파일->인스톨 까지 가능하도록 도와 준다. 심지어 이클립스에서 설정이 가능하다.
-----------------------------------------------------------------------------------------------
주요용어
빈(bean)
스프링이 IoC 방식으로 관리하는 오브젝트를 말한다. 관리 되는 오브젝트라고 부르기도 한다.
스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 빈이라고 부른다.
빈 팩토리(bean factory)
스프링이 IoC를 담당하는 핵심 컨테이너를 가리키다. 빈을 등록하고. 생성하고, 조회하고 돌려주고, 그 외에 부가적인 빈을 관리하는 기능을 담당한다.
보통은 이 빈 팩토리를 바로 사용하지 않고 이를 확장한 애플리 케이션 컨텍스트를 이용한다.
애플리케이션 컨텍스트(application context)
빈 팩토리를 확장한 IoC 컨테이너이다. 빈을 등록하고 관리하는 기본적인 기능은 빈 팩토리와 동일하다.
스프링이 제공하는 각종 부가 서비스를 추가로 제공한다.
빈 팩토리라고 부를 때는 주로 빈의 생성과 제어의 관점에서 이야기하는 것이고, 애플리케이션 컨텍스트라고 할 때는 스프링이 제공하는
애플리케이션 지원 기능을 모두 포함해서 이야기하는 것이라고 보면 된다.
설정정보/설정 메타정보(configuration metadata)
스프링의 설정정보란 애플리케이션 컨텍스트 또는 빈 팩토리가 IoC를 적용하기 위해 사용하는 메타정보를 말한다.
이는 구성정보 내지는 형상정보라는 의미이다.
스프링 프레임워크
스프링 프레임워크는 IoC 컨테이너, 애플리케이션 컨텍스트를 포함해서 스프링이 제공하는 모든 기능을 통틀어 말할 때 주로 사용한다.
web.xml 에 관한 설명은 아래에서.
출처: http://seongilman.tistory.com/16 [SEONG]
톰캣 관련
-PSI-Probe : Tomcat 모니터링 툴
https://dukeom.wordpress.com/2011/08/08/psi-probe-tomcat-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%ED%88%B4/
-Tomcat manager GUI 사용하기
https://dukeom.wordpress.com/2011/08/08/tomcat-manager-gui-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
스프링 강좌
스프링 MVC
http://cloudstudying.kr/courses/12
------------------------------------------------------------------------------------------------------------
-web.xml 에 대해 알아보자
http://seongilman.tistory.com/16
-스프링 파일 업로드 예제
https://dukeom.wordpress.com/2011/08/25/spring3-file-upload-%EA%B5%AC%ED%98%84/
-스프링 프로퍼티 파일을@로 읽어오기
https://dukeom.wordpress.com/2016/06/26/%EC%8A%A4%ED%94%84%EB%A7%81%EC%97%90%EC%84%9C-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%ED%8C%8C%EC%9D%BC%EC%9D%84-value%EB%A1%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
-스프링 디비 관련
tomcat(7.x),spring,mybatis 사용시 tomcat connection pool 설정하기
https://dukeom.wordpress.com/2012/02/21/tomcat7-xspringmybatis-%EC%82%AC%EC%9A%A9%EC%8B%9C-tomcat-connection-pool-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/
- EJB 의 폐쇄적이고 상속 위주의 단점을 극복하고자 만든 프레임워크, 톰캣이 가능하다..ㅋ
- 오픈소스로 만들어진 안정적인 프레임워크
- 자바로 웹 또는 실행 애플리케이션을 만들 때 사용할 수 있는 프레임워크
- 자바로 네트워크 연결, 디비 연결등 귀찮고 짜증나는 작업을 쉽고 편하게 지원하여 , 비지니스 로직 개발에만 전념할수 있도록 해줌.
- POJO 방식을 지우너하고 경량 컨테이너를 지원함으로서 프레임워크에 종속되지 않는 개발 방식이 가능
-- POJO : 특정 라이브러리를 상속하지 않고 자바 자체의 구현 함수만으로 프로그램이 제작 가능한건.
-- 경량 컨테이너 : 프레임워크를 전부 로드하는 게 아니라 필요한 기능한 사용가능한 경량 컨테이너 방식
- 의존성주입, 관점 지향 컨테이너, 포터블 서비스 추상화
--의존성 주입 : 헐리우드 법칙, 내가 필요해서 요청하는게 아니라 , 스프링에서 필요한 부분에 호출해 준다. 즉, 빈 컨테이너 (컨테이너 박스) 에 내가 사용할 빈을 미리 등록해 놓으면, 스프링이 해당 부분에서 알아서 빈을 꺼내서 주입해 준다. 프로그램 내에서 사용할 객체를 이것저것 new 하는게 아니라, 빈 컨테이너를 통해 사용함으로서 객체간의 의존성을 최소화함.
-- 관점지향 컨테이너 : 여러 객체에서 공통으로 적용되는 공통관심사항(트랜잭션,로깅,보안등)을 특정 메소드,필드가 실행되기 전후,예외발생등의 시점에 실행해 주는 것을 관리, 기존의 방식이라면, 매번 해당 기능을 호출하고 관리해야 되므로 문제가 생기던것을, 훅 과 같은 방식으로 처리.
-빈 객체의 생성,소멸과 같은 라이프 사이클을 관리
-데이터 베이스 접근의 일관성.
[참고].MAVEN 필요 라이브러리 관리툴
jar 를 library , plugin 등의 폴더에 다운받아서 저장 하는 귀찮은 과정을, Maven 이 대신 해줌.
단순히 다운로드 뿐만 아니라, 모듈간 의존성을 관리해줌.
스프링 뿐만 아니라 기존 프로젝트도 메이븐 프로젝트로 변경할수 있음.
최신의 이클립스에는 기본으로 탑재되어 있음.
또 하나의 기능은 빌드 기능이다. 프로젝트를 컴파일,테스트,패키징,인스톨 과 같은 빌드 라이프 싸이클을 설정하여, 한번에 컴파일->인스톨 까지 가능하도록 도와 준다. 심지어 이클립스에서 설정이 가능하다.
-----------------------------------------------------------------------------------------------
주요용어
빈(bean)
스프링이 IoC 방식으로 관리하는 오브젝트를 말한다. 관리 되는 오브젝트라고 부르기도 한다.
스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 빈이라고 부른다.
빈 팩토리(bean factory)
스프링이 IoC를 담당하는 핵심 컨테이너를 가리키다. 빈을 등록하고. 생성하고, 조회하고 돌려주고, 그 외에 부가적인 빈을 관리하는 기능을 담당한다.
보통은 이 빈 팩토리를 바로 사용하지 않고 이를 확장한 애플리 케이션 컨텍스트를 이용한다.
애플리케이션 컨텍스트(application context)
빈 팩토리를 확장한 IoC 컨테이너이다. 빈을 등록하고 관리하는 기본적인 기능은 빈 팩토리와 동일하다.
스프링이 제공하는 각종 부가 서비스를 추가로 제공한다.
빈 팩토리라고 부를 때는 주로 빈의 생성과 제어의 관점에서 이야기하는 것이고, 애플리케이션 컨텍스트라고 할 때는 스프링이 제공하는
애플리케이션 지원 기능을 모두 포함해서 이야기하는 것이라고 보면 된다.
설정정보/설정 메타정보(configuration metadata)
스프링의 설정정보란 애플리케이션 컨텍스트 또는 빈 팩토리가 IoC를 적용하기 위해 사용하는 메타정보를 말한다.
이는 구성정보 내지는 형상정보라는 의미이다.
스프링 프레임워크
스프링 프레임워크는 IoC 컨테이너, 애플리케이션 컨텍스트를 포함해서 스프링이 제공하는 모든 기능을 통틀어 말할 때 주로 사용한다.
web.xml 에 관한 설명은 아래에서.
출처: http://seongilman.tistory.com/16 [SEONG]
톰캣 관련
-PSI-Probe : Tomcat 모니터링 툴
https://dukeom.wordpress.com/2011/08/08/psi-probe-tomcat-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%ED%88%B4/
-Tomcat manager GUI 사용하기
https://dukeom.wordpress.com/2011/08/08/tomcat-manager-gui-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
스프링 강좌
스프링 MVC
http://cloudstudying.kr/courses/12
------------------------------------------------------------------------------------------------------------
-web.xml 에 대해 알아보자
http://seongilman.tistory.com/16
-스프링 파일 업로드 예제
https://dukeom.wordpress.com/2011/08/25/spring3-file-upload-%EA%B5%AC%ED%98%84/
-스프링 프로퍼티 파일을
tomcat(7.x),spring,mybatis 사용시 tomcat connection pool 설정하기
2017년 9월 16일 토요일
Swift 기초 설명과 예제와 깃 소스,
https://sites.google.com/a/gclue.jp/swift-docs/
강추, 충실한 깃 소스와 화면 캡춰
흠..내가 만들려고 했는데 이미 만들어져 있네요. ㅋ 일본분 화팅
http://docs.fabo.io/swift/
일로 옮겼단다. 책저자 인거 같네요
강추, 충실한 깃 소스와 화면 캡춰
흠..내가 만들려고 했는데 이미 만들어져 있네요. ㅋ 일본분 화팅
http://docs.fabo.io/swift/
일로 옮겼단다. 책저자 인거 같네요
2017년 9월 14일 목요일
swift-salaryman 멋지다 일본 개발자
By schoolhompy at 9월 14, 2017
No comments
우연히 발견 스위프트 일본 개발자 사이트 이미지로 봐선 나이가 꽤 있으신듯 ㅋ
swift-salaryman.com 멋지다 일본 개발자
swift-salaryman.com 멋지다 일본 개발자
2017년 9월 12일 화요일
designing-adaptive-layouts-for-iphone-6-plus 적응성디자인?
http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/
화면을 돌리면 그에 맞게 적응하는 효과
화면을 돌리면 그에 맞게 적응하는 효과
2017년 9월 11일 월요일
SWIFT 3.0 ㅋㅋ 얼마안의 아이폰 공부인지..
일단 Swift 가이드라고 하니. 먼저 보고..
http://seorenn.blogspot.jp/2014/06/swift_16.html
아이폰 및 맥OS ...개인적으로는 둘다 싫어하지만, 여튼 만들수 있다니 정리가 잘되어있어서 좋음
http://seorenn.blogspot.jp/2014/06/swift_16.html
아이폰 및 맥OS ...개인적으로는 둘다 싫어하지만, 여튼 만들수 있다니 정리가 잘되어있어서 좋음
2017년 7월 28일 금요일
Tomcat 8.5 + sts 3.9 +java 1.8 에서 스프링 기본 프로젝트 실행안될때
Tomcat 8.5 + sts 3.9 +java 1.8 에서 스프링 기본 샘플 생성하고 실행하니 이런 메시지가..
알아보니 pom.xml 앞줄에
<java-version>1.6</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
를
<java-version>1.8</java-version>
<org.springframework-version>4.1.7.RELEASE</org.springframework-version>
응? 4.1.7 RELEASE ? ㅆㅂ야 sts 3.9 받았다니까..
여튼 이렇게 하면 실행됨.
아래 에러 중에 java 버젼이 틀렸다는거 찾을수 있는분? 톰고양이 쉐끼 매번 고생시키네..
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@39fa9a06]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4860)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4992)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@6cb46084]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:709)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
... 12 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at sun.misc.IOUtils.readFully(IOUtils.java:65)
at java.util.jar.JarFile.getBytes(JarFile.java:425)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
at java.util.jar.JarFile.getManifest(JarFile.java:180)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)
... 13 more
Jul 29, 2017 2:23:52 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:656)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:947)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Jul 29, 2017 2:23:52 PM org.apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.startup.Catalina.start(Catalina.java:656)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:947)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
알아보니 pom.xml 앞줄에
<java-version>1.6</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
를
<java-version>1.8</java-version>
<org.springframework-version>4.1.7.RELEASE</org.springframework-version>
응? 4.1.7 RELEASE ? ㅆㅂ야 sts 3.9 받았다니까..
여튼 이렇게 하면 실행됨.
아래 에러 중에 java 버젼이 틀렸다는거 찾을수 있는분? 톰고양이 쉐끼 매번 고생시키네..
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@39fa9a06]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4860)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4992)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@6cb46084]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:709)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
... 12 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at sun.misc.IOUtils.readFully(IOUtils.java:65)
at java.util.jar.JarFile.getBytes(JarFile.java:425)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
at java.util.jar.JarFile.getManifest(JarFile.java:180)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:111)
... 13 more
Jul 29, 2017 2:23:52 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:656)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:947)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Jul 29, 2017 2:23:52 PM org.apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.startup.Catalina.start(Catalina.java:656)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:947)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
2017년 7월 11일 화요일
Java Refactoring
히로시 유키 저 "Java 언어로 배우는 리팩토링 입문" 부록에 나오는 리팩토링 목록입니다.
http://sinihong.tistory.com/m/11#toc_1
http://sinihong.tistory.com/m/11#toc_1
2017년 7월 10일 월요일
자바디자인 패턴
By schoolhompy at 7월 10, 2017
No comments
1.Strategy pattern
: 대장-관리인(인터페이스)-일꾼 의 구조로 설계함. 일꾼은 항상 다른일을 하기 때문에, 관리인에게 공통된 명령(일시작해,밥줘,퇴근시켜...아..사장쉐키들이 하는거였네..) 사장님 패턴이라고 해야하나..아니면 관리인 패턴인가
한개의 인터페이스와 여러개의 구현체, 인터페이스를 통해 명령을 내릴 대장클래스
2.Adapter Pattern
: 열라좋은 헤어드라이기를 해외여행때마다 가지고 다니고 싶은데, 나라마다 코드가 제각이니 각 나라에 맞는 코드를 끼워넣음. 내가 원하는 것을 하기위해서는 기존의 소스에 아답터인터페이스(돼지코,일자코...)를 확장시켜야 함.
[기존코드]를 추상화된 애댑터에 지정, 확장한 소스에서 기능 확장
3.Template Method Pattern
: 공장에서 자동차를 만들다보니, 본체-바퀴-문짝 조립순이더라, 사람한테 시키니 실수도 많고 표준대로 지키지도 않고...그래서 순서대로 조립할수 있는 라인을 만들고 기계를 도입했다.
추상화된 생산절차-확장해서 자세한 작업을 구현, 총 감독할 실행부
4.작업중...
: 대장-관리인(인터페이스)-일꾼 의 구조로 설계함. 일꾼은 항상 다른일을 하기 때문에, 관리인에게 공통된 명령(일시작해,밥줘,퇴근시켜...아..사장쉐키들이 하는거였네..) 사장님 패턴이라고 해야하나..아니면 관리인 패턴인가
한개의 인터페이스와 여러개의 구현체, 인터페이스를 통해 명령을 내릴 대장클래스
2.Adapter Pattern
: 열라좋은 헤어드라이기를 해외여행때마다 가지고 다니고 싶은데, 나라마다 코드가 제각이니 각 나라에 맞는 코드를 끼워넣음. 내가 원하는 것을 하기위해서는 기존의 소스에 아답터인터페이스(돼지코,일자코...)를 확장시켜야 함.
[기존코드]를 추상화된 애댑터에 지정, 확장한 소스에서 기능 확장
3.Template Method Pattern
: 공장에서 자동차를 만들다보니, 본체-바퀴-문짝 조립순이더라, 사람한테 시키니 실수도 많고 표준대로 지키지도 않고...그래서 순서대로 조립할수 있는 라인을 만들고 기계를 도입했다.
추상화된 생산절차-확장해서 자세한 작업을 구현, 총 감독할 실행부
4.작업중...
2017년 7월 9일 일요일
스프링프레임워크 무료 동영상강좌 - inflearn.com
강좌에 대한 요약은 여기 http://mj-documents.readthedocs.io/ko/latest/JAVA%20(%20Spring%20)/Spring%20%ED%95%84%EA%B8%B0/
강좌의 소스에 대한 이해는 대충.
spring_11_2_ex1_springex
--------------------------------------------
1. web.xml 의 <servlet> 설정에서 <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 읽음
2. 콘트롤러 파일을 찾기 위해서 <context:component-scan base-package="com.javalec.ex" /> 지정
3. 화면 표시용 view 가 있는 리소스 위치를 지정하기 위해서 prefix,suffix 값을 지정
4. context root,그러니까 http:localhost:8080/ex 이렇게 뜨는 거는 Server 의 Tomcat v7.0.... 으로 추가한 서버를 더블클릭하고 server.xml 파일의 context path 를 변경하면됨.
5. 프로젝트 에서도 Properties>Web Project Settings 에서도 context root 를 변경
6. HomeController 자바 파일에서는 @Requestmapping 으로 넘어온 value 주소에 대해서만 실행함.
7. model.addAttribute("serverTime", formattedDate ); 로 화면에 출력할 변수를 만들어서 "home" 뷰에 전달함.
8. /WEB-INF/views/ + "home" + jsp 파일에서는 ${serverTime} 값을 출력함
spring_11_3_ex1_springex
--------------------------------------------
spring_11_2_ex1_springex 와 같은 소스 다만
<resources mapping="/resources/**" location="/resources/" /> 로 지정안된 폴더에서 이미지 가져오려 하면, 가져올수 없다는 것을 확인
spring_12_1_ex1_springex
--------------------------------------------
spring_11_2_ex1_springex 와 같은 소스 다만
콘트롤러에서
@RequestMapping("/board/view")
@RequestMapping("/board/content")...
로 했을때의 별도의 메소드에서 처리됨을 확인.
각 메소드에서는 return "뷰값"을 하여
해당 파일(/WEB-INF/views/ + "뷰값" + jsp)이 있으면 그걸 화면 출력한다.
spring_12_4_ex1_springex
--------------------------------------------
spring_11_2_ex1_springex 와 같은 소스 다만
콘트롤러에서 클래스에
@RequestMapping("/board") 를 추가하고
메소드에
@RequestMapping("/")
@RequestMapping("/write")...
로 했을때 웹상에서의 주소접근이
http://localhost:8080/board/
http://localhost:8080/board/write
로 되는 것을 확인- 한참 헤멨네...
spring_13_1_ex1_springex
--------------------------------------------
@RequestMapping("board/confirmId")
public String confirmId(HttpServletRequest httpServletRequest, Model model) {
에서는 httpServletRequest.getParameter("id") 등과 같이 http 로 넘어오는 값을 받아서 처리하는 예제
@RequestMapping("board/checkId")
public String checkId(@RequestParam("id") String id, @RequestParam("pw") int pw, Model model) {
에서는 @RequestParam 어노테이션을 이용하여 request 된 데이터 취득.
spring_13_4_ex1_springex
--------------------------------------------
@RequestMapping("/student/{studentId}")
public String getStudent(@PathVariable String studentId, Model model) {
주소라인에 SEO 방식의 주소로 할수 있도록 하는 예제. 즉 http://localhost:8080/student/아빠/ 라는 식으로 http 주소를 받아서 '아빠' 이름에 해당하는 변수를 활용할수있다. get,post 도 필요없이 주소라인에서 직접 변수를 전달하는 방식, 이렇게 링크를 하는 이유는 검색엔진에서 주소라인의 문구가 검색 결과로 잡하기 때문에...
@RequestMapping("/student/{studentId}/{nickname}")
public String getStudent(
@PathVariable("studentId") Optional<String> studentId,
@PathVariable("nickname") Optional<String> nickname,
Model model
) {
머..이런식도 가능.
spring_14_1_ex1_springex
--------------------------------------------
콘트롤러에서 지정한
http://localhost:8080/ex/index 화면에서 전송을 누르면
전송 폼이 나타나고 값을 입력후 전송하면.
@RequestMapping(method = RequestMethod.POST, value = "/student") 또는
@RequestMapping(method = RequestMethod.GET, value = "/student") 가
적절히 실행된다.
get 을 확인하려면
http://localhost:8080/ex/student?id=1234 하면됨.
spring_14_2_ex1_springex
--------------------------------------------
spring_13_4_ex1_springex 랑 비교하면 좋음.
폼정보가 있는 index.jsp 에서 전송을 하면,
콘트롤러에서
@RequestMapping("/studentView")
public String studentView(@ModelAttribute("studentInfo") StudentInformation studentInformation){
메소드를 실행하는데, 이때 넘어온 폼의 정보를 한번에 StudentInformation 클래스에 setter 한다.
물론 form 의 input 이름과 클래스변수의 이름이 같고 seter 가 있는 변수에 한해서만이다.
ModelAttribute("studentInfo") 여기의 "studentInfo" 가 view 에서 변수명이 된다.
***중요한 거는 StudentInformation.java 클래스에 자동으로 담겨주는 거.폼의 인풋 정보랑 modelAttribute 에서 지정한 클래스 정보랑
spring_14_3_ex1_springex
--------------------------------------------
리다이렉트 redirect: 예제들.
spring_15_1_ex1_springex
--------------------------------------------
StudentController 에서 @RequestMapping("/student/create") 주소로 폼 내용이 넘어올때,
public String studentCreate(@ModelAttribute("student") Student student, BindingResult result) {
이름의 인풋값들중에 student 객체에 있는 변수는 할당을 한다.
student 객체에 입력된 값으로 StudentValidator 의 검증 메소드를 실행한다. 이때 에러가 발생하면, crete 페이지로 가고 아니면 done 페이지로 간다.
폼주소 http://localhost:8080/spring_15_1_ex1_srpingex/studentForm
spring_15_2_ex1_springex
--------------------------------------------
spring_15_1_ex1_springex 과 같은 내용, 밸리데이터만 수정
spring_15_3_ex1_springex
--------------------------------------------
spring_15_1_ex1_springex 과 같은 내용, 밸리데이터만 수정
@InitBinder 확인.?
spring_16_1_ex1_springex
--------------------------------------------
BController.java
이 화일에서는 각 요청 주소 에 따른 @RequestMapping("...") 을 한다.
command 패턴을 사용해서 각 코맨드에 맞는 클래스,메소드를 실행한다.(좋음)
com.javalec.spring_16_1_ex1_srpingex.command 패키지에는 각 커맨드에 맞는 클래스가 있다.
Dao 를 썼지만 , 예전 방식으로 접속함.(예제니까..)
spring_21_1_ex1_springex
--------------------------------------------
servelet-context.xml 에서
<beans:bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
....
</beans:bean>
JDBC 이용한거만 좀 다름..
spring_22_1_ex1_springex
--------------------------------------------
servelet-context.xml 에서
<beans:bean name="dao" class="com.javalec.spring_pjt_ex.dao.TicketDao" >
로 빈 지정하고.
HomeController 에서
@Autowired
public void setDao(TicketDao dao) {
Autowired 처리되어 dao 변수는 com.javalec.spring_pjt_ex.dao.TicketDao 할당됨
spring_22_2_ex1_springex
--------------------------------------------
servelet-context.xml 에서
<beans:bean name="dao" class="com.javalec.spring_pjt_ex.dao.TicketDao" >
로 빈 지정하고.
HomeController 에서
@Autowired
public void setDao(TicketDao dao) {
Autowired 처리되어 dao 변수는 com.javalec.spring_pjt_ex.dao.TicketDao 할당됨
아직 트랜잭션 처리되지 안음.
spring_22_2_ex2_springex
--------------------------------------------
spring_22_2_ex1_springex 동일.
스프링에서 지원하는 TransactionDefinition 으로 간단히 트랜잭션 지정.
spring_23_1_ex1_springex
--------------------------------------------
spring_22_2_ex2_springex 동일.
좀더 간단히 TransactionTemplate 을 이용
설정에 추가됨
<beans:bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
<beans:bean name="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<beans:property name="transactionManager" ref="transactionManager"></beans:property>
</beans:bean>
spring_23_2_ex1_springex
--------------------------------------------
spring_23_2_ex2_springex 동일.
좀더 간단히 TransactionTemplate 을 이용
설정에 추가됨
<beans:bean name="ticketCommand" class="com.javalec.spring_pjt_ex.command.TicketCommand" >
빈에 연결
@Autowired
public void setTicketCommand(ITicketCommand ticketCommand) {
this.ticketCommand = ticketCommand;
}
빈에 연결시에 인터페이스와 implement 구형제가 한세트라서, 자동으로 구현클라스에 할당됨
트랜잭션의 전파 속성 별도로 학습 필요
spring_25_1_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_26_1_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_26_2_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_27_1_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_28_1_ex1_springex
--------------------------------------------
JDBC 방식임.
spring_29_1_ex1_springex
--------------------------------------------
마이바티스 를 사용하기 위해서는
<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource"></beans:property>
<beans:property name="mapperLocations" value="classpath:com/javalec/spring_mybatis/dao/mapper/*.xml"></beans:property>
</beans:bean>
<beans:bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<beans:constructor-arg index="0" ref="sqlSessionFactory"></beans:constructor-arg>
</beans:bean>
추가해야함.
value="classpath:com/javalec/spring_mybatis/dao/mapper/*.xml" 는 프로젝트 마다 다름.
스트링에서 마이바티스를 이용하면
mapper 폴더의 xml 과 인터페이스 를 1:1 로 연결함.
즉 mapper/OOO.xml 에는
<mapper namespace="com.javalec.spring_mybatis.dao.IDao">
와 같이
com.javalec.spring_mybatis.dao.IDao 인터페이스에 연결한다.
이는
즉 mapper/OOO.xml 에는 에는
<mapper> 밑으로
<select id="listDao" resultType="com.javalec.spring_mybatis.dto.ContentDto">
SELECT * FROM BOARD ORDER BY MID DESC
</select>
로 선언됨.
이를 가지고 콘트롤러에서
IDao dao = sqlSession.getMapper(IDao.class); Idao 에는 현재 xml 파일이 매핑되어 있음.
model.addAttribute("list", dao.listDao) 매핑된 xml 속성(쿼리element) 중에 id 가 listdao 인 놈만 가져와서 list (모델속성)에 할당해서 화면에 뿌릴수 있게됨.
화면에 뿌릴때는 list.db필드명 식으로딤.
spring_30_1_ex1_springex
--------------------------------------------
xml 이용한 연습.
xml 에 인자 는 #{param1} #{param2} 식으로.
강좌의 소스에 대한 이해는 대충.
spring_11_2_ex1_springex
--------------------------------------------
1. web.xml 의 <servlet> 설정에서 <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 읽음
2. 콘트롤러 파일을 찾기 위해서 <context:component-scan base-package="com.javalec.ex" /> 지정
3. 화면 표시용 view 가 있는 리소스 위치를 지정하기 위해서 prefix,suffix 값을 지정
4. context root,그러니까 http:localhost:8080/ex 이렇게 뜨는 거는 Server 의 Tomcat v7.0.... 으로 추가한 서버를 더블클릭하고 server.xml 파일의 context path 를 변경하면됨.
5. 프로젝트 에서도 Properties>Web Project Settings 에서도 context root 를 변경
6. HomeController 자바 파일에서는 @Requestmapping 으로 넘어온 value 주소에 대해서만 실행함.
7. model.addAttribute("serverTime", formattedDate ); 로 화면에 출력할 변수를 만들어서 "home" 뷰에 전달함.
8. /WEB-INF/views/ + "home" + jsp 파일에서는 ${serverTime} 값을 출력함
spring_11_3_ex1_springex
--------------------------------------------
spring_11_2_ex1_springex 와 같은 소스 다만
<resources mapping="/resources/**" location="/resources/" /> 로 지정안된 폴더에서 이미지 가져오려 하면, 가져올수 없다는 것을 확인
spring_12_1_ex1_springex
--------------------------------------------
spring_11_2_ex1_springex 와 같은 소스 다만
콘트롤러에서
@RequestMapping("/board/view")
@RequestMapping("/board/content")...
로 했을때의 별도의 메소드에서 처리됨을 확인.
각 메소드에서는 return "뷰값"을 하여
해당 파일(/WEB-INF/views/ + "뷰값" + jsp)이 있으면 그걸 화면 출력한다.
spring_12_4_ex1_springex
--------------------------------------------
spring_11_2_ex1_springex 와 같은 소스 다만
콘트롤러에서 클래스에
@RequestMapping("/board") 를 추가하고
메소드에
@RequestMapping("/")
@RequestMapping("/write")...
로 했을때 웹상에서의 주소접근이
http://localhost:8080/board/
http://localhost:8080/board/write
로 되는 것을 확인- 한참 헤멨네...
spring_13_1_ex1_springex
--------------------------------------------
@RequestMapping("board/confirmId")
public String confirmId(HttpServletRequest httpServletRequest, Model model) {
에서는 httpServletRequest.getParameter("id") 등과 같이 http 로 넘어오는 값을 받아서 처리하는 예제
@RequestMapping("board/checkId")
public String checkId(@RequestParam("id") String id, @RequestParam("pw") int pw, Model model) {
에서는 @RequestParam 어노테이션을 이용하여 request 된 데이터 취득.
spring_13_4_ex1_springex
--------------------------------------------
@RequestMapping("/student/{studentId}")
public String getStudent(@PathVariable String studentId, Model model) {
주소라인에 SEO 방식의 주소로 할수 있도록 하는 예제. 즉 http://localhost:8080/student/아빠/ 라는 식으로 http 주소를 받아서 '아빠' 이름에 해당하는 변수를 활용할수있다. get,post 도 필요없이 주소라인에서 직접 변수를 전달하는 방식, 이렇게 링크를 하는 이유는 검색엔진에서 주소라인의 문구가 검색 결과로 잡하기 때문에...
@RequestMapping("/student/{studentId}/{nickname}")
public String getStudent(
@PathVariable("studentId") Optional<String> studentId,
@PathVariable("nickname") Optional<String> nickname,
Model model
) {
머..이런식도 가능.
spring_14_1_ex1_springex
--------------------------------------------
콘트롤러에서 지정한
http://localhost:8080/ex/index 화면에서 전송을 누르면
전송 폼이 나타나고 값을 입력후 전송하면.
@RequestMapping(method = RequestMethod.POST, value = "/student") 또는
@RequestMapping(method = RequestMethod.GET, value = "/student") 가
적절히 실행된다.
get 을 확인하려면
http://localhost:8080/ex/student?id=1234 하면됨.
spring_14_2_ex1_springex
--------------------------------------------
spring_13_4_ex1_springex 랑 비교하면 좋음.
폼정보가 있는 index.jsp 에서 전송을 하면,
콘트롤러에서
@RequestMapping("/studentView")
public String studentView(@ModelAttribute("studentInfo") StudentInformation studentInformation){
메소드를 실행하는데, 이때 넘어온 폼의 정보를 한번에 StudentInformation 클래스에 setter 한다.
물론 form 의 input 이름과 클래스변수의 이름이 같고 seter 가 있는 변수에 한해서만이다.
ModelAttribute("studentInfo") 여기의 "studentInfo" 가 view 에서 변수명이 된다.
***중요한 거는 StudentInformation.java 클래스에 자동으로 담겨주는 거.폼의 인풋 정보랑 modelAttribute 에서 지정한 클래스 정보랑
spring_14_3_ex1_springex
--------------------------------------------
리다이렉트 redirect: 예제들.
spring_15_1_ex1_springex
--------------------------------------------
StudentController 에서 @RequestMapping("/student/create") 주소로 폼 내용이 넘어올때,
public String studentCreate(@ModelAttribute("student") Student student, BindingResult result) {
이름의 인풋값들중에 student 객체에 있는 변수는 할당을 한다.
student 객체에 입력된 값으로 StudentValidator 의 검증 메소드를 실행한다. 이때 에러가 발생하면, crete 페이지로 가고 아니면 done 페이지로 간다.
폼주소 http://localhost:8080/spring_15_1_ex1_srpingex/studentForm
spring_15_2_ex1_springex
--------------------------------------------
spring_15_1_ex1_springex 과 같은 내용, 밸리데이터만 수정
spring_15_3_ex1_springex
--------------------------------------------
spring_15_1_ex1_springex 과 같은 내용, 밸리데이터만 수정
@InitBinder 확인.?
spring_16_1_ex1_springex
--------------------------------------------
BController.java
이 화일에서는 각 요청 주소 에 따른 @RequestMapping("...") 을 한다.
command 패턴을 사용해서 각 코맨드에 맞는 클래스,메소드를 실행한다.(좋음)
com.javalec.spring_16_1_ex1_srpingex.command 패키지에는 각 커맨드에 맞는 클래스가 있다.
Dao 를 썼지만 , 예전 방식으로 접속함.(예제니까..)
spring_21_1_ex1_springex
--------------------------------------------
servelet-context.xml 에서
<beans:bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
....
</beans:bean>
JDBC 이용한거만 좀 다름..
spring_22_1_ex1_springex
--------------------------------------------
servelet-context.xml 에서
<beans:bean name="dao" class="com.javalec.spring_pjt_ex.dao.TicketDao" >
로 빈 지정하고.
HomeController 에서
@Autowired
public void setDao(TicketDao dao) {
Autowired 처리되어 dao 변수는 com.javalec.spring_pjt_ex.dao.TicketDao 할당됨
spring_22_2_ex1_springex
--------------------------------------------
servelet-context.xml 에서
<beans:bean name="dao" class="com.javalec.spring_pjt_ex.dao.TicketDao" >
로 빈 지정하고.
HomeController 에서
@Autowired
public void setDao(TicketDao dao) {
Autowired 처리되어 dao 변수는 com.javalec.spring_pjt_ex.dao.TicketDao 할당됨
아직 트랜잭션 처리되지 안음.
spring_22_2_ex2_springex
--------------------------------------------
spring_22_2_ex1_springex 동일.
스프링에서 지원하는 TransactionDefinition 으로 간단히 트랜잭션 지정.
spring_23_1_ex1_springex
--------------------------------------------
spring_22_2_ex2_springex 동일.
좀더 간단히 TransactionTemplate 을 이용
설정에 추가됨
<beans:bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<beans:property name="dataSource" ref="dataSource" />
</beans:bean>
<beans:bean name="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<beans:property name="transactionManager" ref="transactionManager"></beans:property>
</beans:bean>
spring_23_2_ex1_springex
--------------------------------------------
spring_23_2_ex2_springex 동일.
좀더 간단히 TransactionTemplate 을 이용
설정에 추가됨
<beans:bean name="ticketCommand" class="com.javalec.spring_pjt_ex.command.TicketCommand" >
빈에 연결
@Autowired
public void setTicketCommand(ITicketCommand ticketCommand) {
this.ticketCommand = ticketCommand;
}
빈에 연결시에 인터페이스와 implement 구형제가 한세트라서, 자동으로 구현클라스에 할당됨
트랜잭션의 전파 속성 별도로 학습 필요
spring_25_1_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_26_1_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_26_2_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_27_1_ex1_springex
--------------------------------------------
보안관련, 한글처리
spring_28_1_ex1_springex
--------------------------------------------
JDBC 방식임.
spring_29_1_ex1_springex
--------------------------------------------
마이바티스 를 사용하기 위해서는
<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource"></beans:property>
<beans:property name="mapperLocations" value="classpath:com/javalec/spring_mybatis/dao/mapper/*.xml"></beans:property>
</beans:bean>
<beans:bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<beans:constructor-arg index="0" ref="sqlSessionFactory"></beans:constructor-arg>
</beans:bean>
추가해야함.
value="classpath:com/javalec/spring_mybatis/dao/mapper/*.xml" 는 프로젝트 마다 다름.
스트링에서 마이바티스를 이용하면
mapper 폴더의 xml 과 인터페이스 를 1:1 로 연결함.
즉 mapper/OOO.xml 에는
<mapper namespace="com.javalec.spring_mybatis.dao.IDao">
와 같이
com.javalec.spring_mybatis.dao.IDao 인터페이스에 연결한다.
이는
즉 mapper/OOO.xml 에는 에는
<mapper> 밑으로
<select id="listDao" resultType="com.javalec.spring_mybatis.dto.ContentDto">
SELECT * FROM BOARD ORDER BY MID DESC
</select>
로 선언됨.
이를 가지고 콘트롤러에서
IDao dao = sqlSession.getMapper(IDao.class); Idao 에는 현재 xml 파일이 매핑되어 있음.
model.addAttribute("list", dao.listDao) 매핑된 xml 속성(쿼리element) 중에 id 가 listdao 인 놈만 가져와서 list (모델속성)에 할당해서 화면에 뿌릴수 있게됨.
화면에 뿌릴때는 list.db필드명 식으로딤.
spring_30_1_ex1_springex
--------------------------------------------
xml 이용한 연습.
xml 에 인자 는 #{param1} #{param2} 식으로.
2017년 6월 27일 화요일
redmine 과 eclise 연동 mylyn connector plugin
redmine 과 eclise 연동 mylyn connector plugin 에 대한 설명
http://whybk.tistory.com/65
http://whybk.tistory.com/65
Redmine 사용법 및 규칙
Redmine 사용법 및 규칙 에 관한 글
http://kindjds.tistory.com/entry/Redmine-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EA%B7%9C%EC%B9%99
http://kindjds.tistory.com/entry/Redmine-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EA%B7%9C%EC%B9%99
2017년 6월 26일 월요일
2017년 6월 25일 일요일
Cocos2dx 컴파일(디버그개발)시 빠르게
http://nalsil.tistory.com/m/51
요기가 포인트.
5. 프로젝트 속성에서 "구성 속성>링커>일반>추가 라이브러리 디렉터리"에 이전에 빌드한 output 폴더를 추가
-. cocos2d-x-3.13\build\Debug.win32
6. "구성 속성>링커>입력>추가 종속성"에 "libcocos2d.lib" 를 추가한다.
7. "구성 속성>빌드 이벤트>빌드 후 이벤트"에 다음 내용을 추가한다.
-. copy cocos2d-x-3.13\build\Debug.win32\*.dll $(OutDir)
요기가 포인트.
5. 프로젝트 속성에서 "구성 속성>링커>일반>추가 라이브러리 디렉터리"에 이전에 빌드한 output 폴더를 추가
-. cocos2d-x-3.13\build\Debug.win32
6. "구성 속성>링커>입력>추가 종속성"에 "libcocos2d.lib" 를 추가한다.
7. "구성 속성>빌드 이벤트>빌드 후 이벤트"에 다음 내용을 추가한다.
-. copy cocos2d-x-3.13\build\Debug.win32\*.dll $(OutDir)
2017년 2월 25일 토요일
VirtualBOX + Yosemite Iso 설치
By schoolhompy at 2월 25, 2017
No comments
http://ssamlee.tistory.com/11
capisan ? seirra ? 다 안되고 이걸로 설치 성공.
capisan ? seirra ? 다 안되고 이걸로 설치 성공.
2017년 2월 23일 목요일
Centos7 apache 80 port open
포트를 방화벽에 추가합니다.
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
방화벽을 리로드
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
방화벽을 리로드
sudo firewall-cmd --reload
2017년 2월 22일 수요일
[행안부] JAVA_시큐어_코딩_가이드
By schoolhompy at 2월 22, 2017
No comments
[행안부] JAVA_시큐어_코딩_가이드
http://joke00.tistory.com/253
2017년 1월 26일 목요일
2017년 1월 25일 수요일
2017년 1월 12일 목요일
2017년 1월 8일 일요일
java-programming-tips-best-practices-beginners
https://www.javacodegeeks.com/2015/06/java-programming-tips-best-practices-beginners.html