1.   로그인

전달 받은 접속정보로 접속 후 처음 보게 되는 화면

 

계정 / 사용자 이름 / 암호를 입력 후 로그인 버튼을 클릭하여 로그인 합니다.

 

 

 

2.   AWS 대시보드

대시보드 화면에서 S3를 클릭합니다.


 

 

 

3.   S3 버킷 접속과 신규 생성

생성된 버킷(폴더)이 없을 경우 버킷을 생성합니다.
(image13.도메인명으로 버킷이 생성되어있는 경우 3번 항목은 생략 하셔도 됩니다. 대부분의 경우 생성이 되어 있습니다.)

-       상단의 Actions 클릭후 Create Bucket 클릭

 

 

 

-       Create Bucket 클릭 후 버킷 이름을 작성 한 후 Create를 클릭합니다.

 

 

 

4.   디렉토리 만들기

-       생성된 버킷을 클릭하여 버킷에 접속 합니다.

-       sample_dir 디렉토리가 없는경우 생성합니다.

-       Create Folder 클릭

 

 

폴더 이름을 작성 한 후  

 를 클릭하여 완료 합니다.

 

 

5.   파일 업로드(대리점 로고파일 업로드하기)

-       파일업로드하기

Action을 클릭하여 Upload를 선택

 

 

를 클릭하여 업로드 할 이미지를 선택 

이미지 선택 후 하단의  

 클릭 

다음화면에서  

 클릭

 

 

다음 화면에서 Make everything public 을 선택 후  

를 선택합니다.

 


테스트파일 k-5.jpg가 완료된 상태

 

 

 

 

업로드 된 파일 URL 확인 하기

 


좌측 파일목록에서 파일을 선택 한 후 우측 상단의 Properties 클릭 후 해당 파일에 대한링크 및 상세정보를 확인 할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 

파일 경로(절대 경로)를 작성한 목록을 기초로 다른 폴더로 해당 파일들이 속한 디렉터리 경로까지 동일하게 맞추어 복사해준다.

작업한 파일 리스트를 만들고 해당 파일만 별도로 뽑아 서버에 배포하기 위해 쓰인다.

 

 

 

core.cmd

 

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
echo.
 
echo ==============================================================================
 
echo * Processing file: [%~1]
 
 
 
if not exist "%~1" goto STEP_NOT_EXIST
 
 
 
set DIR_CURRENT=%~dp0
 
set FILE_FULLPATH=%~1
 
set DIR_FULLPATH=%~dp1
 
set DIR_PATHONLY=%~p1
 
set FILE_FULLNAME=%~nx1
 
set FILE_NAMEONLY=%~n1
 
set FILE_EXTONLY=%~x1
 
set FILE_EXTONLY=%FILE_EXTONLY:~1,3%
 
 
 
set TARGET_DIR=%DIR_CURRENT%%DIR_PATHONLY:~1%
 
set TARGET_FILE=%TARGET_DIR%%FILE_FULLNAME%
 
 
 
echo * Checking directory: [%TARGET_DIR%]
 
if not exist "%TARGET_DIR%" (
 
 echo ** Create directory
 
 mkdir "%TARGET_DIR%"
 
else (
 
 echo ** Directory already exist
 
)
 
 
 
echo * Checking file: [%TARGET_FILE%]
 
if not exist "%TARGET_FILE%" (
 
 echo ** Copy file from: [%FILE_FULLPATH%]
 
 echo **             to: [%TARGET_FILE%]
 
 copy "%FILE_FULLPATH%" "%TARGET_FILE%" > NUL
 
else (
 
 echo ** File already exist
 
)
 
 
 
goto STEP_END
 
 
 
:STEP_NOT_EXIST
 
echo * Processing stop file not exist 
 
 
 
:STEP_END
 
 
cs
 
 
startFileCopy.cmd
 
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
 
@echo off
echo **************************************************
echo * 파일복사 배치 프로그램                         *
echo * 사용법 ) list.txt 파일에                       *
echo *          복사할 파일 목록을 작성합니다.        *
echo *          ex) C:\test\f\f_testFile_2.txt        *
echo *                                                *
echo * 기존에 해당 파일이 있을경우 복사하지 않습니다. *
echo *                                                *
echo *                           * Create By Cheezred *
echo **************************************************
echo.
 
set /p key=실행하시겠습니까(Y/N)?
if /"%key%"=="y" ( 
  goto STEP_START_JOB
else (
  goto STEP_END_JOB
)
    
 
goto STEP_END_JOB
 
:STEP_START_JOB
setlocal enableextensions
for /"eol=# delims=" %%i in (list.txt) do call core.cmd "%%i"
 
endlocal
 
goto STEP_END
 
:STEP_END_JOB
echo 사용자의 요청으로 작업이 취소되었습니다.
 
 
:STEP_END
cs
 
 
list.txt
 
1
2
3
4
# 사용 예제 
# ex C:\Windows\System32\acproxy.dll
 
#제외하고 싶은 파일은 #을 맨앞에 입력
cs

 

JRebel 이클립스 설정편





위 와같이 사이트에 간략하게나마 설명이 되어있다.


이클립스를 실행하고  Help > Eclipse MarketPlace를 선택한 후 아래 그림과 같이 JRebel로 검색하자




검색결과는 다음과 같다.




그럼 아는 단어가 몇개 없으니 그냥 Install 누른다.


모두다 체크한 뒤 Confirm..




I accept the @#$@$@ 선택한 뒤 Finish....



위 그림과 같이 알아서 잘 설치해준다.

다운로드 및 설치가 완료되면 이클리스 리스타트~




이클립스가 재 기동 되고나면 우측하단에 아래 그림과 같이 말풍선이 팝업된다 (정상적으로 설치가 되었다면)



서버를 더블클릭하여 서버에 설정을 변경합니다. 



위 그림과 같이 Never Publish automatically로 변경하고 JRelbel 관련 설정은 모두다 체크하도록 합니다. 


서버에 대한 설정을 완료 한 후 

원하는 프로젝트에서 JRebel을 사용하기 위해서 rebel.xml 을 생성 하기위해 

해야하는데 아래 그림과 같이 선택




아래 그림과 같이 Generate now를 클릭...



이제 Was 리스타트로 시간을 버리지 않고 개발 할 수 있게 되었습니다.

JRebel 관련 추가 설정이 있긴 하지만 그건 나중에 시간날때 추가로 포스팅 하겠습니다. 





JRebel 이란..?

일반적인 웹을 위한 자바개발을 할 때 java 파일을 변경 할 경우 was를 리스타트해야하는 상황이 벌어진다.

자바파일을 수정이 잦을경우 매번 리스타트를 하는 것은 상당한 스트레스가 동반된다.


이러한 문제점(?)을 모든 개발자가 불편해 할 것이다. 그래서 그 시간을 줄여보고자 해서 나온 기술이라고 생각하면 간단하다.




먼저 JRebel 사이트를 방문하자 



https://zeroturnaround.com




JRebel Down 받기


1 아래의 사이트에서 녹색으로 표시되어있는 DOWNLOAD를 클릭하자.




다운로드를 클릭하면 아래와 같은 화면을 볼 수 있다. (2016.01.07 일자 기준)








Free Jrebel Trial에 기본정보를 넣고 라이센스 키를 받자


라이센스 키를 받는다고해서 과금이 되는건 아니다. 개인이 사용하는경우 무료 이다. 기업은 돈을 내는 것 같은데 그건 잘 모르겠고 


우리는 공부하는것 이니까... 무료로 쓰자!!


[라이센스를 발급하는 부분은 굳이 설명하지 않음]


라이센스 키가 발급되면 반드시 잘 적어 놓아야한다... 분실하면 다른 이메일 계정을 이용하여 새로 발급받아야 하니까...








라이센스를 발급 받았다면 I have a License를 클릭하자!! (우리는 라이센스가 있으니까!!)




클릭하여 파일을 받은 뒤 압축을 해제하고 폴더의 내용을 보자 


/bin 폴더의 안에 activate-gui.cmd를 클릭하여 JRebel을 활성화 한다. 





 실행 후 아래와 같은 화면이 나오는데 라이센스 키를 입력하여 JRebel을 활성화 해보자.





키를 입력하고 Activate JRebel을 클릭하면



JRebel을 사용하기 위한 기본 설치가 완료 되었다







 

Property 파일을 사용하여 화면에 특정 메시지를 출력하는 기능을 사용할 경우 다국어 지원(국제화 : internationalizaion ) 에 대한 부분을 유연하게 사용할 수 있습니다.  

 

Message Tag를 사용하기 위해서는 가장 먼저 MessageSource를 등록해야합니다. 

    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource"
        p:basename="ApplicationResources" />

 

위와 같은 작업 후 Message Property 파일을 생성한 후 Jsp에서 taglib를 등록한 다면 아래와 같이 사용할 수 있습니다. 

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

 

//Property File 내용
MSG.HTML.MYCODE=내코드
MSG.HTML.OUR_CODE=우리코드

//JSP상의 작성법
<spring:message code="MSG.HTML.MYCODE"/>

 

 

 

Message Tag의 속성

속성 설명
arguments 부가적인 인자를 넘겨줌. 콤마로 구분된 문자열, 객체 배열, 객체 하나를 넘김.
argumentSeparator 넘겨줄 인자들의 구분자 설정. 기본값은 콤마.
code 룩업할 메시지의  지정. 지정하지 않으면 text 입력한  출력.
htmlEscape html 기본 escapse 속성 오버라이딩. 기본값 false.
javaScriptEscape 기본값 false
message MessageSourceResolvable 인자로 Spring MVC validation 거친 errors 메시지를 쉽게 보여줄  사용
scope 결과 값을 변수에 지정할  변수의 scope 지정 (page, request, session, application)
text 해당 code 가져온 값이 없을  기본으로 보여줄 문자열.  값이면 null 출력.
var 결과 값을 이 속성에 해당한 문자열에 바인딩 할 때 사용. 빈 값이면 그냥 JSP에 뿌려줌.

 

 

 

쓸만한 Layer 팝업창


<div id="reservationList_popImg_Layer" onclick="javascript:$(this).hide()" style="display:block; position:absolute; top:100px; z-index:1000; left:30px; background:#fff; padding:10px; border:1px solid #999;">

<a onclick="javascript:$('#reservationList_popImg_Layer').hide();" style="position: absolute; cursor:pointer; right: -6px; top: -3px; width: 21px; margin: -5px 0 0 0; padding: 1px; height: 20px; color: #fff; border-radius: 14px; background:#98a5b5 url('/images/t6i_1.png') center center no-repeat; background-position: 3px 2px;"></a>

<img id="reservationList_popImg" src="/images/20151215_cn_pop_main.jpg" border="0" style="border:1px solid #e1e1e1">

</div>

server.xml ciphers 설정


<Connector SSLEnabled="true" 

              sslEnabledProtocols="TLSv1.1,TLSv1.2" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"

              clientAuth="false" 

              keystoreFile="[keystore path]" keystorePass="[keystore password]" 

              maxThreads="150" 

              port="443" 

              protocol="org.apache.coyote.http11.Http11Protocol" 

              scheme="https" 

              secure="true" />

[mysql myisam을 innodb로 바꾸는 방법]
방법은 여러가지가 있지만 alter table 을 이용한 방법은 권장하지 않습니다.
ex: Alter table ‘target_table’ engine = InnoDB;

위 방법은 환경에 따라서 데이터가 깨질 수도 있고 퍼포먼스가 떨어질 수도 있습니다.

가장 최적의 방법은 DB를 덤프 떠서 새로 생성하는 방법입니다.

1. mysqldump 명령으로 DB 덤프 백업
2. 덤프 파일 열어서 engine을 MyISAM에서 InnoDB로 변경
3. 기존 Database Drop (DB Drop이 힙들다면 Drop table로 테이블만 삭제)
4. Database를 Drop 했다면 다시 create database로 생성
5. 생성된 DB에 수정된 덤프파일 삽입

InnoDB와 MyISAM의 차이점들 중 가장 특징적인 점은 아래와 같습니다.
    1. InnoDB는 DB백업을 Dump로만 가능하다. (MyISAM처럼 파일 백업 불가)
    2. InnoDB는 서버의 Core수에 비례하여 성능이 올라간다. (MyISAM은 Core수가 많더라도 성능의 차이 없음)

시간이 흐르면서 MyISAM의 장점들은 다른 엔진에 비해 메리트가 덜해진 것이 사실이고 무엇보다도 2번과 같은 특징때문에 InnoDB를 많이 사용하는 추세입니다.


출처 : http://sunder4.tistory.com/551

'DB > MariaDB(MySql)' 카테고리의 다른 글

[MySQL 5.6]사용자 생성 및 권한 추가  (0) 2019.01.24
[MYSQL 5.6] ROOT 비밀번호 초기화  (0) 2019.01.24



화면 중앙 좌표를 구하는 법이다.


당연히 띄워지는 객체의  position은 absolute 이어야 할 것이다.


var left = ( $(window).scrollLeft() + ($(window).width() - obj.width()) / 2 );
var top = ( $(window).scrollTop() + ($(window).height() - obj.height()) / 2 );



만약 left 와 top 값이 0보다 작은경우라면 화면 밖으로 벗어나지 않도록 0으로 초기화 해준다.



그냥 플러그인을 쓰면되는데.. 그지같은... 퍼블리셔때문에 blockUI 기능을 만들어 써야하는데 매번 찾기 귀찮아서 적는다..


아오..

Java 에서 JSON 을 처리하기 위한 라이브러리는 많이 있지만 여러게 사용해본 결과  Jackson 라이브러리가 좋은것 같다

(실제로 High-performance JSON processor! 라고도 써있다.)

 

그냥 다운로드 받는 방법은 http://wiki.fasterxml.com/JacksonDownload 로 가서 최신 버전을 다운받아 해당 프로젝트의 라이브러리 폴더에 붙여 넣어서 사용한다.(core-asl 과 mapper-asl 를 받는다)

 

메이븐을 이용하는 경우는

 

1
2
3
4
5
<dependency>    
    <groupId>org.codehaus.jackson</groupId>    
    <artifactId>jackson-mapper-asl</artifactId>    
    <version>1.9.13</version>
</dependency>
cs

 

이렇게 하면 알아서 라이브러리에 추가 된다. 최신 버전 확인은 아래의 링크에서 확인한다.

최신 버전 확인 : http://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl

 

 

자바에서 사용 예제 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Map dummyData1 = new HashMap();
dummyData1.put("value1""11111");
dummyData1.put("value2""22222");
 
ObjectMapper om = new ObjectMapper();
 
try {   
    System.out.println(om.defaultPrettyPrintingWriter().writeValueAsString(dummyData1));
catch (JsonGenerationException e) {   
    e.printStackTrace();
catch (JsonMappingException e) {  
    e.printStackTrace();
catch (IOException e) {   
    e.printStackTrace();
}
cs

 

 

 

Jackson 라이브러리로 하는 짓들의 대부분은 ObjectMapper 라는 클래스의 인스턴스 생성을 한다음에 한다.

 

생성된 고것을 가지고 Json 문자열을 객체로 변환한다던가 객체를 JSON 문자열로 변환한다던가 한다. 뭐 다른 쓸만한 것도 많을 것이다. 

 

getter/setter 메소드 시리즈가 있는 도메인 오브젝트의 경우 writeValueAsString 메소드의 파라메터로 넣어서 사용 한다.

 

 

다음은 Spring Framework 에@ResponseBody를 이용한 messageConverter에 셋팅하는 방법을 알아 볼까한다

(다음에.. 언제인지 모름 -ㅅ-.)

+ Recent posts