반응형

이클립스에서 작업을 하다 보면 종종

.properties 파일을 열 때



이런식으로 한글이 모두 깨져서 보일 때가 있습니다.

사실 무슨말인지 몰라도 쓰는데 지장은 없지만

무슨말인지 알면 더 쓰기 편할 수가 있으니 깨지지 않고 볼 수 있는 방법을 알려드리겠습니다.



상단 메뉴의 HELP > eclipse marketplace 에서

properties 라고 검색을 합니다.



그러면 위와 같이 Properties Editor 라는 플러그인이 나오게 됩니다.

만약 나오지 않는다면

제 글

https://dzzienki.tistory.com/36

를 참고하여 설치하시기 바랍니다.


플러그인을 설치하시고 난 후에

보고자 하는 프로퍼티 파일을 우클릭 후 Open With > PropertiesEditor 를 선택해주시면





아래와 같이 맨 처음에 깨져보이던 프로퍼티의 한글 문구들이 

깨지지 않고 정상적으로 나오게 됩니다.



도움이 되셨으면 좋겠습니다.


반응형
반응형

저는 현재 이클립스 2018-12 버전을 사용중입니다.


그런데 이클립스 마켓플레이스에서 필요한 플러그인이 있어

설치하려고 검색을 해보면



이렇게 검색도 되질 않고


홈페이지에서 직접 검색을 하여 Install 을 드래그 앤 드롭하여 설치를 시도하여도





아래와 같은 화면만 반복될 뿐 설치도 검색도 되지 않는 문제가 있습니다.



이클립스 최신버전을 쓸 때 생기는 문제인 것 같습니다.

혹시나 마켓플레이스를 업데이트하면 검색이 될까 하여

맨 위쪽 항목의 Marketplace client update available 의

update now 를 눌러 업데이트 해보았습니다.





I accept the terms of the license agresment 에 체크를 해주고

Next> 를 누르면





위와같이 설치를 할 수가 있구요

업데이트를 해주어도 필요한 플러그인이 검색이 되지 않더군요...

그렇게 한참을 헤메던 중

우연히




마켓플레이스에서 검색된 플러그인을 클릭하고 들어가서

Install 버튼 바로 아래쪽의 네개의 아이콘 중 맨 오른쪽 것을 클릭하니

위와같이 설치를 할 수 있는 주소창이 나왔습니다.

지원되는 버전을 보니 2018.12 버전이 아직 포함되지 않아서

마켓플레이스에서 검색이 되지 않았던 것 같네요

아무튼 저 주소를 복사하여





이클립스 상단 메뉴의 Help > Install New Software... 를 선택한 후





저 주소를 입력하고 Add 를 누르면 설치할 이름을 설정하는 탭이 나오는데

(중간에 캡처를 못하여 사진이 없습니다. 아래쪽에 사진 있어요) 

필요한 설치 항목에 체크한 후 Next> 를 누르면




이렇게 필요한 항목을 설치할 수 있었습니다.

Next > 를 누르고





I accept the terms of the license agreements 에 체크를 해주고

Finish 를 누르면





이런 탭이 한번 뜨는데

Install anyway 를 눌러주고

다 설치가 되면





Restart Now 를 누르면 설치가 완료됩니다.


혹시 다른 것도 저런식으로 설치가 되는지 궁금하여 

한번 더 해보았습니다.




이렇게 필요한 subversive 를 검색해도 

비슷한 다른 플러그인이 나올 뿐

역시나 나오지 않아서





마켓플레이스에서 검색을 하여 해당 플러그인을 선택하여 들어가고





동일한 위치에 아이콘을 클릭하고 주소를 복사한 후

(뭔가 다른 버전들이 있는걸 보니 

다른 버전에서는 해당 버전의 주소를 복사해주어야 하는 것 같습니다.)





(위쪽에 중간에 캡쳐못했다는 부분이 이부분입니다.)

이름을 임의로 입력해준 후 Add 를 누르고





위와 동일하게 필요한 플러그인에 체크를 해주고 Next > 를 눌러주면





이렇게 설치가 되구요





Next > 를 누르고





동의에 체크해주고 Finish 를 누르고





설치가 완료되면





이렇게 재시작을 해주고

설치가 완료된 것을 확인할 수가 있었습니다.


이클립스 최신버전을 설치하셔서

마켓플레이스에서 필요한 플러그인이 검색이 되지 않아

고생하셨던 분들에게 도움이 됬기를 바랍니다.



반응형
반응형

일을 하던 도중

MySQL 에서 한 문자열에 여러개의 구분자가 있을 때,

예를 들면


'동해물과;백두산이;마르고;닳도록;하느님이;보우하사;우리나라;만세'


이런 테이블이 있다고 가정했을 때


 1절

 동해물과;백두산이;마르고;닳도록;하느님이;보우하사;우리나라;만세

 2절

 남산위에;저소나무;철갑을;두른듯;바람서리;불변함은;우리;기상일세

 3절

 가을하늘;공활한데;높고;구름없이;밝은달은;우리가슴;일편;단심일세

 4절

 이기상과;이맘으로;충성을;다하여;괴로우나;즐거우나;나라;사랑하세

 후렴

 무궁화;삼천리;화려강산;대한사람;대한으로;길이;보전하세



 1절

 동해물과

 1절

 백두산이

 1절

 마르고

 1절

 닳도록

 1절

 하느님이

 1절

 보우하사

 1절

 우리나라

 1절

 만세

 2절

 남산위에 

 2절

 저소나무

.

.

.


이런식으로 나누는 쿼리를 짜고 싶었습니다.


구글링을 해 본 결과


https://yamea-guide.tistory.com/88


이분의 블로그를 참고하였습니다.


저 위의 테이블이 akukka 이고 

컬럼명이 JUL, VERSE 라고 할 때


1
2
3
4
5
6
7
8
9
10
11
12
13
select
   SUBSTRING_INDEX (SUBSTRING_INDEX(akukka.VERSE,';',numbers.n),';',-1) 컬럼명
from 
   (select  1 n union  all  select 2  
    union  all  select  3  union  all select 4 
    union  all  select  5  union  all  select  6
    union  all  select  7  union  all  select  8 
    union  all  select  9 union  all  select  10) numbers INNER  JOIN 테이블명
    on CHAR_LENGTH ( akukka.VERSE ) 
      - CHAR_LENGTH ( REPLACE ( akukka.VERSE ,  ';' ,  '' ))>= numbers . n-1
-- 공백을 제거하기 위한 조건절
--  WHERE SUBSTRING_INDEX ( SUBSTRING_INDEX ( akukka.VERSE ,  ' ' , numbers . n ),  ' ' ,  -1 ) != ' '
;
cs


이런 코드를 사용하여 주시면 됩니다.

저 union all 의 개수를 이용하여 구분자의 개수를 더 늘릴수도 있는데

혹시 구분자의 개수가 10개를 넘어간다면

union all 의 개수를 늘이셔서 사용하시면 됩니다.



반응형
반응형

MySQL 에서 함수를 만들려고 하는데

CREATE FUNCTION 문을 선언하니


ERROR 1418 (HY000) : This function hasn none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)


이런 에러가 뜨면서 함수가 생성되지 않았습니다.


구글링을 하니 간단하게 해결 방법이 있었습니다.


http://www.mysqlkorea.com/gnuboard4/bbs/board.php?bo_table=community_03&wr_id=1965


이곳을 참조했구요


어떤 설정인지는 정확히 알 수 없지만


SET GLOBAL log_bin_trust_function_creators = 1;


이런 SQL 쿼리를 한번 날려준 뒤


동일한 함수생성문을 선언했더니 에러가 나지 않았습니다.


혹시 이 방법이 안되신다면 저 커뮤니티를 참조하셔서 다른방법으로 해결해 보시기 바랍니다.

반응형
반응형

이클립스에서 개발 작업을 하게 되면

톰캣 서버를 자주 내렸다 올리며 개발을 하게 됩니다.


그렇게 톰캣 서버를 수도없이 내렸다 올리다 보면



이런 'Starting server' has encountered a problem.

라는 오류를 발생시키며

서버가 재시작 되지 않는 경우가 종종 발생하곤 합니다.

이럴 경우 해결방법을 알려드리도록 하겠습니다.


우선 cmd 창을 열고


netstat -a -n -o -p tcp


라는 명령어를 실행시켜줍니다.



그러면 저렇게 보이시는것처럼

로컬 주소 부분에 8009 라는 포트를 사용하고 있는 프로토콜이 보이실 겁니다.


이클립스 오류에서 보이는것처럼

내가 필요한 포트는 8005와 8009 인데 해당 포트가 사용중이기 때문에

강제로 저 포트를 사용하고 있는 프로토콜을 종료시켜주어야

이클립스에서 톰캣 서버를 실행시킬 수 있습니다.


강제로 종료하는 방법은

해당 프로토콜의 맨 오른쪽에 있는 PID 번호를 기억하여


taskkill /f /pid 피드번호


라는 명령어를 실행시켜주시면 됩니다.

저의 경우 위의 사진에서 볼 수 있듯이

PID 번호가 2312 이기 때문에


taskkill /f /pid 2312


라고 쓰고 엔터를 눌러주시면 됩니다.

그러면



위와같이 성공 메세지와 함께

다시 


netstat -a -n -o -p tcp


라는 명령어를 실행시켜 줬을 때

8009를 사용하던 프로세스가 감지되지 않는 것을 확인할 수 있습니다.

마찬가지로 8005 번 포트를 사용하고 있는 포트의 PID도 찾아서

taskkill 명령어로 종료시켜주면

이클립스에서 해당 톰캣 서버가 문제없이 잘 실행될 것입니다.

반응형
반응형

일을 하던 중에

몇십만줄이 넘어가는 sql 파일을 DB에 임포트 시킬 일이 있었습니다.


보통 작업을 할 때는 tool 을 사용하기 때문에

평소와 다름 없이 툴을 이용하여 sql 파일을 임포트 시키려고 하였으나

엄청난 양 때문인지 sql 파일을 로드조차 하지 못하고

툴이 뻗어버리는 일이 발생했습니다.


구글링을 통하여 해결방법을 찾았고

그 방법을 알려드리려고 합니다.

출처는

https://sir.kr/pg_tip/14631


이분의 글을 참조하였습니다.


작업 DB는 MYSql 입니다.


1. Mysql command 를 실행시키고 DB에 접속합니다.





2. use dbname; 


라는 쿼리문을 이용해 대용량 sql 파일을 임포트 시킬 디비를 선택합니다.


Database changed

라는 응답이 돌아오면 데이터베이스가 변경된 것입니다.


3. source sql파일경로/sql파일명


예를들어 C드라이브 아래에 test 라는 폴더 아래에 big.sql 이라는 파일을 임포트 시키고 싶다면

source C:/test/big.sql;


이런 명령어가 되겠죠?



예시를 들기위해 sql 문을 간단하게 만들어서 그렇지만

저 방법을 사용하여

쿼리툴로는 실행시킬 수 없는 대용량 sql 파일을

임포트시킬 수 있었습니다.


반응형
반응형

MVC 패턴이란

Model 의 M

View 의 V

Controller 의 C


즉 


홈페이지 제작을 하거나 웹개발을 할 때에


사용자에게 보여지는 View

모델과 뷰 사이의 흐름을 제어하는 Controller

들어온 요청을 처리하고 DB에 연결되어

필요한 데이터들을 DB와 주고 받는 Model


이 세가지의 기능을 나누어 코딩하는 방식이다.


MVC 패턴에 관해 검색하던 중

네이버 지식인에 

MVC 패턴에 잘 맞는 비유가 있어 가져와보았다.

https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=309877882&qb=TVZDIO2MqO2EtA==&enc=utf8§ion=kin&rank=4&search_sort=0&spq=0&pid=Uca8aspVuEdssu/pJSCssssstHh-447555&sid=Q5W8yTFb6U2WbJL72PizwAvF

이 분의 답변이 참 와닿는 표현인 것 같다.


이 비유를 풀어서 얘기를 해보면


손님이 식당에 들어오면 메뉴판이 보여진다. 

= ( 사용자가 네이버 혹은 다음같은 홈페이지에 접속하면 뉴스, 웹툰 등 다양한 메뉴들이 보여진다.)

손님이 먹고싶은 메뉴를 웨이터에게 주문한다.

= (홈페이지에서 보고싶은 메뉴를 클릭하면 컨트롤러에게 요청이 전달된다.)

웨이터는 주방장에게 들어온 메뉴를 요청한다.

= (컨트롤러는 모델에 들어온 메뉴를 요청한다.)

주방장은 메뉴를 요리한다.

= (모델은 들어온 요청에 관한 정보를 처리한다.)

주방장이 완성된 요리를 웨이터에게 전달한다.

= (모델이 컨트롤러에 처리된 정보를 전달한다.)

웨이터가 완성된 음식을 손님에게 가져다 준다.

=(컨트롤러가 뷰에 정보를 전달하면 뷰는 정보를 시각화하여 사용자에게 보여준다.)


이런 식으로 이해하면 좋을 것이다.


물론 개발은 그렇게 단순하지가 않아서

단순히 정보를 주고 받는것에 끝나는게 아니라

정보를 가공하고 처리하는 과정이 훨씬 복잡하겠지만

대략적인 역할을 이해하는데에는 좋은 비유인 것 같다.


대부분의 경우에서

View 는 .jsp 혹은 .html 파일


Controller 는 Controller 혹은 Servlet 이라는 

이름을 가지는 java 파일


Model은

Service(ServiceImpl).java → DAO.java → SQLMap.xml 을 거쳐

JDBC 라이브러리 드라이버를 이용하여 DB 에 연결된다.

DAO 에서 SQLMap으로 연결될때 iBatis 혹은 Mybatis 라는 프레임워크가 사용되고

DAO 에서 정보전달을 원활하게 하기 위해 VO(DTO) 라는 자바빈 객체를 사용한다.


MVC 패턴을 이용한 웹개발의 대략적인 개념은 이정도로 이해하면 좋을 것 같다.

반응형
반응형

내 로컬 MYSQL DB에 접속할때는

MySql 8.0 Command Line Client - Unicode

파일을 실행시켜도 되지만



원격으로 접속하거나 cmd 창에서 접속하려면 약간의 과정이 필요합니다.


그래서 오늘은 MySQL 을 cmd 창에서 접속할 수 있도록 하는 법과

원격으로 IP 주소를 입력하여 접속할 수 있는 방법을 알려드리도록 하겠습니다.


1. 우선 내 PC 아이콘을 우클릭 하거나


내 PC 를 열고 비어있는 아무곳에서 우클릭을 하여



속성에 들어가 줍니다.



2. 왼쪽 탭 중 고급 시스템 설정에 들어갑니다.




3. 고급 탭의 환경 변수(N)... 를 눌러주고




4. 아래쪽의 시스템 변수(S)에 Path 라는 이름의 변수를 클릭한 후

편집(I)...을 눌러줍니다.




5. 그 전에 내 mysql 이 설치된 폴더를 찾아 주소를 복사해 옵니다.

mysql 설치폴더 아래의 MySQL Server 8.0 폴더 아래의 bin 폴더의 경로를 가져오셔야 합니다.





6. Path 의 환경변수를 편집하는 창에서

새로 만들기(N) 을 누른 후

제일 아래에 MySQL 설치경로의 server 폴더 아래의 bin 폴더의 경로를 입력해주고

확인 확인 확인을 눌러 빠져나옵니다.




7. cmd 창을 열고

mysql -u root -p

라는 명령어를 입력하고

비밀번호를 입력하면

아래와 같이 cmd 창에서 mysql 에 접속할 수 있게 됩니다.



그리고 마지막으로 ip 주소를 이용하여 외부의 Mysql DB 에 연결하는 명령어는

mysql -u root -p --port 3306 --host 0.0.0.0

입니다.


root 에는 계정 ID 가

3306 에는 해당 db의 포트번호가

0.0.0.0 에는 해당 ip 주소가 와야합니다.


이상 MySQL 환경변수 등록 및 cmd 로 원격 ip 접속 방법이었습니다.

반응형

+ Recent posts