SVN의 증분백업과 증분복원

Posted by MD워시퍼
2019. 1. 18. 13:42 Study
728x90
안녕하세요. MD워시퍼입니다.

기존에 SVN 이슈사항으로 인하여, 제대로 해결하지 못하고, 전체 백업 & 전체복원 식으로 처리를 했었는데요.
이번 프로젝트를 마치고 복귀하면서 제대로 해보고자 다시 도전을 해보았습니다.

ㅇ 사용하고 있던 SVN 서버
# cat /home/svn/kama/db/current
1843

ㅇ 새롭게 사용하고자 하는 SVN 서버
$ cat /home/kama/svn/kama/db/current
1722

ㅇ 증분백업
# svnadmin dump /home/svn/kama/ -r 1723:1843 --incremental > /home/repos-1723-1843.svn_dump

ㅇ 증분복원
# svnadmin load /home/kama/svn/kama/ < ./repos-1723-1843.svn_dump

제대로 복원이 되었네요. 다음부터는 이런식으로 처리하면 될 것 같아요.

※ 꼭 기억하셔야 할 것은, 새롭게 사용하고자 하는 SVN 서버의 버전보다 +1 해서 받아야 한다는 사실!!
꼭 기억해야할 것 같습니다.

[JAVA] 소켓연결시 TIMEOUT 설정

Posted by MD워시퍼
2019. 1. 2. 11:08 Study
728x90

자바 1.4부터 소켓통신(socket)할때 timeout을 걸어주는 메서드가 추가 되었습니다.

보통 socket.setSoTimeout() 타임아웃 설정으로 착각할 수도 있는데 

이 메서드는 소켓이 연결된후 InputStream에서 읽을때 timeout을 설정하는것이고 

socket연결할때 timeout주는것은 InetSocketAddress클래스 사용 합니다.



import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketException;

public class SocketTimeoutTest {
public static void main(String[] args) {
String hostname = "127.0.0.1";
int port = 5000;
int timeout = 3000;
SocketAddress socketAddress = new InetSocketAddress(hostname, port);
Socket socket = new Socket();
try {
socket.setSoTimeout(timeout); /* InputStream에서 데이터읽을때의 timeout */
socket.connect(socketAddress, timeout); /* socket연결 자체에대한 timeout */
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

= 출처

[헬스] 웨이트 트레이닝 배우기

Posted by MD워시퍼
2018. 7. 24. 16:51 Diary
728x90
명칭이 그냥 생겨난 것이아닙니다.
수많은 운동 이름들이 아래의 조합에 의해 생겨났습니다.

-스탠딩 카프레이즈[서서 종아리를 들어올리다(수축시키다)]
-(바벨) 벤치 프레스[바벨을 벤치에서 밀어내다] ->모두 같은건 아니지만 벤치 머신명칭중에는 체스트프레스 머신 이라고 불리기도합니다.
-벤트오버 바벨로우 [앞으로 숙인채로 바벨을 당기다]
-시티드 덤벨 숄더 프레스[앉아서 덤벨을 어깨로 밀어올리다]
-풀 업[당겨 올라가다]
-풀 다운[당겨 내리다]-> 비슷해보이지만 보통 철봉에서 풀업이란 표현을 쓰고, 머신에서 풀다운이라는 표현을 쓰는 이유입니다.


[자세별]
1. 스탠딩(서다)
2. 시티드(앉다)
3. 라잉(눕다) - 하늘을 보고 눕건, 엎드린 자세 모두 포함
4. 벤트오버(허리를 숙이다) - 허리를 앞, 옆으로 숙인 동작을 기본으로 bent 또는 bend라고도 한다.
5. 인클라인(오르막) - 벤치가 90~180도사이
6. 디클라인(내리막) -벤치가 180~240도 사이
7. 얼터네이트(번갈아하다)
8. 프론트(앞으로)
9. 비하인드(뒤로)
10. 사이트 or 레터럴(옆으로)
11. 리버스(거꾸로)
12, 원암(한쪽 팔)
14. 오버헤드(머리 위로)
15. 행잉(매달리다)


[부위별]
1. 체스트(가슴)
2. 백(등)
3. 레그(무릎 위 다리)
4. 숄더(어깨)
5. 바이셉스(이두)
6. 트라이셉스(삼두)
7. 카프(종아리)
8. 포럼(전완)- 손목을 뜻하는 wrist(리스트)가 많이 쓰임.
9. 업도미널(복근)


[방법별]
1. 프레스(밀다)
2. 풀(당기다)
3. 로우(노를 젓다)
4. 스쿼트(쪼그려 앉다)
5. 레이즈(들어올리다)
6. 컬(말아올리다)
7. 익스텐션(펴다)
8. 플라이(날개짓)
9. 킥(차다)
10. 트위스트(비틀다)
11. 슈러그(어깨를 으쓱하다)



[3] 운동 순서

거의 정석에 가까운 운동순서는
다이어트를 하는사람도, 근육을 키우는 사람도 큰차이가없습니다, 식단과 운동 프로그램에 차이가 조금 있을뿐 입니다.

1) 5~10분 웜업
짧은 런닝, 싸이클 등 몸을 데우는 시간

2) 5~10분 동적스트레칭
움직임이있는 스트레칭을 말합니다, 흔히 알고계시는 쭉 당기는 스트레칭이아닌 근육의 사용을 부드럽게 하기 위해
근육, 관절을 무리가 가지않게 이리저리 움직이는 동작들입니다. 팔을 앞뒤로 돌리며 어깨를 풀어주는 것 또한 여기에 포함되며
'전신운동'에 가까운 동작들이 많으며 힌두푸쉬업, 런지, 스쿼트, 버피테스트 등등 있습니다.

3) 40분~1시간 웨이트트레이닝
저장된 에너지를 힘으로 소모시키는 구간입니다. 에너지가 있을때 무거운걸 들어야지,
자주 묻는 유산소->무산소(웨이트)는 에너지를 먼저 어느정도 소비하고 시작하기에 효율적인 웨이트 트레이닝이 어렵습니다.
무산소->유산소가 맞습니다.

4)15분~40분 유산소운동
근성장을 위해 운동하는사람도 최소 15분은 유산소운동을 해야 좋습니다.
여기부터 나뉘는게 다이어트 하는사람들은 상대적으로 지방이 '높은' 편이므로 유산소를 길게 잡으시면 되겠습니다.
그렇지만 아무리 과체중이라도 유산소를 너무 길게하는건 안좋습니다.
운동은 길~게 보고하시는겁니다.

5)5분~10분 웜 다운
격렬하게 유산소를 하신경우, 숨 고르기 및 열을 식히시는 구간입니다.
가볍게 걷기 정도면 될거같네요.
(적당한 강도의 유산소에는 생략해도 된다고 생각합니다)

6)정적 스트레칭
흔히 알고 계신 쭉~늘린채로 버티는 스트레칭입니다.
수축 이완을 반복하며 긴장하고 뭉쳤을 근육의 긴장을 풀어줍니다.



[4] 부위별 운동명칭
여기엔 일단 제가 생각나는 운동들만 적어보겠습니다
대부분의 동작은 바벨/덤벨을 모두 할 수있습니다.


보시면 대부분 위의 용어정리에서 합쳐지는 명칭들이 대부분입니다.

가슴 : 바벨 벤치프레스, 덤벨 벤치프레스, 벤치프레스 머신, 케이블 플라이, 펙덱 플라이, 덤벨플라이, 풀오버, 딥스, 인클라인 벤치프레스
디클라인 벤치프레스, 인클라인 덤벨 벤치프레스, 디클라인 덤벨 벤치프레스, 인클라인 덤벨 플라이 등등

등 : 벤트오버 바벨로우, 덤벨로우, 원암 덤벨로우, 풀업, 풀다운, 데드리프트, 덤벨&바벨 슈(쉬)러그 백익스텐션, 업라이트 로우 등등

어깨[대부분이 시티드, 스탠딩 두가지로 수행가능, 앞에 명칭만 붙이면 됨] : 덤벨 숄더프레스, 바벨 숄더프레스, 밀리터리프레스, 사이드 래터럴레이즈 프런트 래터럴레이즈, 벤트오버 래터럴레이즈, 업라이트 로우, 비하인드 넥 프레스 등등
->보시면 업라이트로우 는 등 어깨에 모두있는데 그립의 넓이에따라 승모에 집중할수도, 삼각근에 집중할 수도있습니다.

이두 : 덤벨컬, 바벨컬, 리버스 컬, 해머컬, 얼터네이트 덤벨컬, 이지바 컬 등등

삼두 : 딥스, 라잉 트라이셉스 익스텐션, 덤벨 킥 백, 트라이셉스 프레스 케이블 다운, 클로즈그립 벤치프레스 등등

전완 : 리스트컬 등... [제가 전완을 안해서 아는것이라곤 이것뿐이네요 ㄷㄷ;]

복근 : 크런치, 리버스 크런치, 트위스트 크런치, 사이드 크런치, 레그레이즈, 행잉 레그레이즈, 행잉 니 레그레이즈, 시티드 니업, 싯업, v 싯업
러시안트위스트, 사이드밴드 등등

대퇴사두 : 스쿼트, 레그익스텐션, 레그 프레스, 런지 등

대퇴이두 : 스쿼트, 라잉레그컬, 레그 프레스, 런지 등

둔근 : 스쿼트, 레그프레스, 런지, 데드리프트, 케틀벨 스윙 등

비복근[종아리] : 스탠딩, 시티드 카프레이즈 등


등등, 해당 부위의 운동에 대해 검색하시면 수많은 운동이 있습니다.


[5] 운동프로그램 짜기

다관절[복합관절] 운동과 단관절 운동이 있습니다.
다관절[복합관절] 운동 : 2개이상의 관절이 동원되는 운동
단관절[고립] 운동 : 하나의 관절이 동원되는 운동

대표적으로 비교해드리자면, 벤치프레스와 케이블 플라이 입니다.
벤치프레스는 어깨, 팔꿈치 관절[2개]이 이용되고 주동근에 가슴 부동근[협응근]으로 전면삼각근, 삼두근이 사용됩니다.
케이블플라이는 어깨관절만[1개] 움직이며 팔꿈치관절은 고정시키고 개입되는 주동근이 가슴이고
'어쩔수 없이 저항에 버티게되는' 부동근이 어깨입니다.
그렇지만 사실상 가슴 하나만을 위한 운동입니다.
단관절 운동은 적은 중량으로도 원하는 부위에 강한 자극 및 강한 수축을 이끌어낼 수 있습니다


프로그램은
대근육[+복합관절 운동] 을 우선으로 짜고, 그 후에 단관절, 소근육 을 넣으시면 되겠습니다.
가슴으로 예를들면,
1) 벤치프레스[가슴,삼두,어깨]를 가장 먼저 하고
2-1) 덤벨플라이를 한다[가슴] or 삼두운동, 어깨운동을 한다
2-2)가슴 위주로 키우기위해 벤치 후 덤벨플라이로 가슴을 다 털어낸다 -> 그 뒤 삼두/어깨 운동을 한다.

->사실 이런식으로 프로그램을 짤 정도면 이미 2분할을 시작해도 될 것입니다.
그렇기에 완전 처음하는 분에게는 저 또한 뻔하면서도 뻔하지 않은 답변을 드리겠습니다만


흔히 말하는 3대운동?
3대운동이 지나치도록 강조되는 이유는
세개 모두 전신을 키우기에 부족함이 없는 복합관절 운동이기 때문입니다.
가슴, 어깨, 삼두에 벤치프레스
등, 전완, 허리, 둔근, 햄스트링에 데드리프트
둔근 햄스트링, 대퇴사두, 허리에 스쿼트
그 외에도 동원되는 부가적인 근육들은 무수히 많습니다.
물론 제 생각에 셋다 '이두'는 부족합니다 ㅜ...
그래서 +풀업이 좋습니다.


그렇지만 입문자에게는 3대운동중에 특히 스쿼트와 데드리프트는 동작자체가 어렵습니다.
3대운동에 집중하는건 어느정도 기본은 되어야 가능합니다.
가장 먼저 하실건 3대운동도 좋지만 그보다도
빅머슬7[딥스, 바벨로우, 벤치프레스, 밀리터리프레스, 풀업, 데드리프트, 스쿼트] 입니다.
빅머슬7이란 승모, 가슴, 등, 삼두, 어깨, 하체 등 을 한번에 성장시키는 복합관절 운동으로, 전신을 골고루키우기에 부족함이 없는 동작들입니다.

하지만 처음부터 위의 빅머슬7 운동들을 그대로 하라는게 아닙니다.
위의 7개 동작도 아무나 바로 하기에 쉬운 운동들이 아닙니다.[기본적으로 3대운동이 다 포함돼있습니다]

제가 말하는 의미는 '근육사용법'을 익히라는 것입니다.
3대운동이 좋긴하지만 처음부터 추천드리지 않는 이유는 어렵기도하고
직접적으로 어깨를 주동근으로 수축 이완시키고, 등을 수축 이완시키는 동작이 없습니다.
처음하시는분께 추천드리는건 위의 운동들을 난이도 낮춰서 하시는 겁니다.

딥스 -> 벤치딥스[or 중량조절이 가능한 딥스 머신,어이스트 딥스 머신]
바벨로우 -> 무릎 or 한손을 벤치나 적당한 높이의 기구에 지지한 채 원암 덤벨로우
밀리터리프레스 -> 덤벨 숄더프레스, 바벨 숄더프레스
풀업 -> 풀다운[or 어시스트 풀업 머신]
벤치프레스 -> 푸쉬업
스쿼트는 -> 맨몸이 어렵다면 런지, 레그프레스, 스미스머신 스쿼트 등
데드리프트는 대체할만한 동작이 없으니, 자세부터 훈련하시면서, 백익스텐션, 코어근 운동을 꾸준히 하시면 됩니다.
+저는 여기에 바벨컬, 덤벨컬 등 이두운동을 꼭 추가하라고 하고싶습니다.


빅머슬7동작들은 대부분 여러가지 협응근을 가지는 좋은 동작들입니다.
'다관절'운동위주로 프로그램을 먼저 짜시고 '단관절' 및 소근육 위주의 운동은 나중으로 미루셔도 좋습니다.

그리고 정말 좋은 운동이 '푸쉬업'입니다.
벤치를 자기체중 절반정도밖에 못드신다 하시는분들은 푸쉬업을 더 열심히 하세요.

저같은경우는 복근운동에 큰 비중을 두지않고[벗고다닐것도아닌데]
매일 하복근3+상복근3 세트씩합니다[귀찮을땐 연속으로 상하 이어서 300개정도합니다]
복근은 꾸준히 매일하시는 걸 추천하고, 절대 높은 비중을 두지마세요.
그리고 웨이트 운동 전에 먼저 하지도 마세요,
복근에 힘이 충분해야 웨이트트레이닝시 강력하게 몸을 고정 할 수 있습니다.



[6] 운동하기
운동전에 가벼운중량으로 1~2세트만 꼭 하고 수행하세요.
웜업 및 동적스트레칭을 한다 해도 해당 부위를 한번 더 준비 시키고 그게 중량을 들었을때 더 자극과 집중이 잘됩니다.

세트수와 휴식시간, 반복횟수에 대해 알아봅시다
목적에 따라 나뉘긴하지만
입문하는 분은 잘 모르시겠다면 가장 뻔하지만, 가장 쓸만한 방법이 있습니다.
첫 1주는 일단 저중량으로 고반복으로 합니다[20회이상]
근육을 깨우는, 그리고 펌핑시켜보는 기간입니다.
그 이후 중량을 잡기 시작하고 한 동작에 대해서 3세트, 10회, 휴식시간은 45초~1분
처음엔 이렇게만 잡고 해주셔도 충분합니다.

중량에 대해 설명드리자면
RM[Repetition Maximum] 이란개념이 있습니다.
최대반복횟수를 뜻하는데, 웨이트트레이닝에서는 중량과 반복횟수의 관계 의미로 쓰입니다.
FM대로라면 1RM=1번은 들고 두번은 죽었다 깨어나도 못드는 '중량' 입니다.
흔히 3세트 10회의 10회란 말은 10RM을 뜻합니다.
11회는 절~대 못하는 중량
그렇지만, 혼자서+아직 근육집중에 익숙하지 않은 사람 이 10RM으로 10회를 그대로한다는건 매우 위험합니다.
그래서 OORM 으로 OO-1~2회 만큼하시는게 좋습니다.

RM과 목적성
보통 조금차이는 있겠습니다만
5rm이하는 근력운동
5~8rm은 근력&근비대
8rm~15rm 근비대
15rm 이상은 근지구력 으로 알려져있습니다.
물론 주와 부의 차이지
근력운동해도 근비대 안되는것 아니고
근지구력운동해도 근력안느는것아닙니다.

그리고 RM이 낮을수록 휴식시간은 길어야하고, RM이 높을수록 휴식시간은 짧습니다.
일반적으로 5RM 이하는 3분~5분사이로 굉장히 긴 휴식시간을 가집니다.
5~8은 2~3분
8~15는 1~2분
15RM은 45초~1분 정도면 됩니다.

물론 어디까지나 위의 내용은 어느정도 오차가 있는 가이드라인이고, 실제 체력여부에 따라 달라집니다.



이렇게 한달만 하시면 어느정도 익숙해지실 것이고,
이제 본인 스스로 운동 방향을 정해 나가시면 됩니다.
위의 빅머슬7 대체 운동에서 빅머슬7로 운동을 바꾸어서 연습하셔도 되고, 그것을 가장 추천하는 바입니다.



[7] 운동 후
운동이 끝나면 목적에 맞게 영양보충을 해줘야합니다.
제 개인적인 입장은, 다이어트하시는 분도 운동 후에 영양섭취를 해야 한다입니다 (건강, 장기적으로 봤을때)
이것은, 개개인마다 운동시간도. 음식섭취 시간도 다르기때문에 어떻게 명답을 내드릴 순 없지만

근성장을 위해서는 운동 후엔 탄수화물 섭취와 단백질 섭취를 해야합니다.
가장 좋은건 운동 후 약간 텀을 두고 식사를 하시는 것이고, 그것이 어렵다면
탄수화물은 흔히 말하는 '빠른흡수[GI지수가 높아 혈당을 올려주는]'의 단당류가 좋다고 하는데
그냥 식품으로 이야기하면 식빵[크기에 따라 1~2장]이 가장 찾아먹기 쉬우며, 떡도 되고 바나나도 됩니다.
심지어 정말 없다 싶으면 설탕을 드셔도됩니다.
식품 중량이 아닌 탄수화물 g수로 15g정도는 최소 섭취해 주셔야됩니다.
그리고 나서 단백질 섭취를 해주시면 됩니다.

장기적으로 보면 다이어트 하시는 분들도 위와 마찬가지 방법으로 해도 살빼는데 전~혀 지장이 없습니다.
다만 과체중이시라 조금 빨리빼고싶으시다면, 운동 후 섭취는 생략하시고 운동 2시간전에 풍부한 영양의 식사를 잘 해주시면 되겠습니다.



[8] 휴식하기
근성장은 휴식중에 상처입었던 근육이 회복하며 더강해지는 겁니다.
그래서 운동이 끝나고 휴식기간중에 영양 잘 챙기시면 됩니다.
처음엔 매일매일 하셔도 됩니다.
초반 주 목적은 '근육깨우기, 사용법 익히기, 전체적으로 준비하기' 이니까요
중량이 늘어날 수록, 운동 기간이 길어질 수록 몸이 휴식을 요구하는 기간이 늘어날 것이고 '분할'이 필요하게 될 것입니다.
같은근육을 하루만에 또하긴 이제 벅차다 싶을때 2분할로 나누고 2분할로 해도 벅차다 싶으면 3분할 계속 늘어나는거지요


그때 쯤 되시면, 이 이런 글이 필요없으실테니까
여기까지!

아참, 덤벨 바벨, 머신 운동시 운동효과 차이가 궁금하세요?
검색하면 나옵니다!
이제부터 검색을 생활화 해보세요.
거짓 없이 '덤벨 바벨 차이' 라고만 쳐도 나옵니다.

제 개인적인 생각이 섞인게 있기에 100 % 모두 맞는건 아닙니다


- 번외 -

[근육을 컨트롤]
원하는 부위의 근육에 집중하여, 긴장상태를 유지하고 수축 이완 시킬 수 있다는 겁니다.
이게 가능하다면, 가벼운 중량으로도 가슴을 최대한 수축 이완시키고 그 부위에 좋은 자극을 줄 수있습니다.
예를 들면. tv같은곳에 가끔 가슴을 번갈아 씰룩씰룩 거리는 사람들이 나오죠?
그분들이 가슴근육을 수축시켰나 이완했다 하는겁니다.
번갈아 하는거 자체가 마음대로 하고 있다는 거지요.[물론.. 어느정도 근육은 있어야 가능합니다]

운동에 적용시켜보면
벤치프레스는 단순히 바를 밀어내는 동작이 아닙니다. 단순히 바를 밀어낸다고 생각하면 어깨로 밀어내게 됩니다.
그래서 어깨 통증을 호소하는 분이 많죠.
어깨는 고정한 채 가슴을 수축시켜 밀어내는겁니다.
최대한 쥐어짠다-> 덤벨 킥백을 예로들면 단순히 팔을 끝까지 펴는게아니라, 삼두를 그 상태로 더 수축시키는겁니다.


[운동 느낌 간접경험]
위의 방법이 어려울 경우, 어깨를 수축시켜 덤벨 숄더프레스를 하는게 뭔지 알기 어려울 겁니다.
그냥 기구를 밀어내는게 아니라면 어떻게 운동을 할까요?
이때는 팔꿈치 아래부터 손까지 없다고 생각하시면 됩니다.
즉, 움직임의 주체가 팔꿈치가 되는겁니다.
벤치프레스를 할때, 팔꿈치가 서로 모인다고 생각하며 밀어냅니다
덤벨숄더프레스를할때, 팔꿈치를 반원을 그리며 위에서 서로 모은다고 생각합니다.
플라이동작도 팔꿈치관절을 살짝 굽힌채 고정하고 팔꿈치를 서로 만나게 한다고 생각하시면 됩니다.
당기는동작도 마찬가지로 바벨/덤벨 로우같은경우 팔꿈치를 등 뒤로 최대한 보낸다고 생각하시면 되시며[단순히 손으로 잡고만 있다 정도]
풀업 풀다운은 똑같이 팔꿈치를 밑으로 당긴다고 생각하시면 됩니다.
풀업 풀다운에서 팔로 당긴다고 생각하시고 당기면, 어깨와 이두 개입이 큽니다.

손은 그저 '기구에걸쳐있는' 것 뿐이라고 생각하셔야합니다.

본세트 전에 웜업세트로 하실때는 가벼운 중량이므로 최대한 수축하는법을 익히시는 시간이 되시면 좋겠습니다.

웹상에서 다른 사이트의 소스 가져오기

Posted by MD워시퍼
2018. 7. 9. 10:36 Study
728x90

----OtherDomainRead.html ----
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Button Test</title>
<script language="javascript" type="text/javascript" src="js/prototype.js"></script>
<script language="javascript" type="text/javascript" src="js/other.js"></script>
</head>
<body>
 <form id="imgform" name="imgform">
  <input id="url" name="url" type="text" value="http://www.kma.go.kr/weather_main.jsp" />
  <image src="originalfile.jpg" id="submitImg" name="submitImg"/>
 </form>
 <div id="result"></div>
</body>
</html>

---- other.js ----
Event.observe(window, "load", function() {
 Event.observe("submitImg", "click", Submitter.clickHandler);
});

var Submitter = {
 clickHandler : function(event) {
  var URL = "otherDomain.jsp?url="+$("url").value;
  new Ajax.Request(URL, {
   onComplete : function(xmlHttp) {
    $("result").innerHTML = xmlHttp.responseText;
   }
  });
 }
};

---- otherDomain.jsp ---- 맘대로 바꾸셔도 되는 부분이며, 여기에서 실제로 내용을 읽어오는 부분입니다.
<%@page import="java.net.MalformedURLException, java.io.IOException, java.io.InputStreamReader"%>
<%@page import="java.io.BufferedReader, java.io.OutputStreamWriter, java.io.BufferedWriter"%>
<%@page import="java.net.URLConnection, java.net.URL"%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%
 BufferedWriter output = null;
 BufferedReader in = null;
 URLConnection conn = null;
 try {
  String strUrl = request.getParameter("url");
  String otherDomain = strUrl.substring(0, strUrl.lastIndexOf("/"));
  URL url = new URL(strUrl);
  conn = url.openConnection();
  conn.setDoOutput(true);
  output = new BufferedWriter( new OutputStreamWriter( conn.getOutputStream() ) );
  in = new BufferedReader( new InputStreamReader( conn.getInputStream() ) );
  String current;
  StringBuffer res = new StringBuffer(100);
  while ( (current = in.readLine()) != null ) {
   res.append(current)
    .append(" ");
  }
  current = res.toString().replaceAll("/images", otherDomain+"/images");
  current = current.replaceAll(""/", """+otherDomain+"/");
  current = current.replaceAll("src="/", "src=""+otherDomain+"/");
  out.print(current);
  System.out.println(current);
 } catch ( MalformedURLException ex ) {
  ex.printStackTrace();
 } catch ( IOException ex ) {
  ex.printStackTrace();
 } finally {
  if(null != output)
   output.close();
  if(null != in)
   in.close();
 }
%>

SVN 관련 이슈사항

Posted by MD워시퍼
2018. 6. 29. 12:49 Study
728x90
안녕하세요. MD워시퍼예요.

일을 하다보니, 생각지 못한 일들로 문제가 발생하게 되고,
그 문제를 해결하기 위해, 노력하다가 나중에 까먹을까봐 계속 블로그에 올리게 되네요.

오늘은 프로젝트단위로 일하는 SI개발자로써, 이미 알고 계시는 분들도 계시겠지만, 새롭게 시작하는 개발자들이나 관리자들이 도움이 될만한 것을 제공하고자 이렇게 글을 써봅니다

외부에서 일하다가, 내부에서 일하는 경우가 종종 일어나게 되면, SVN이 내부에 하나, 외부에 하나 존재해야할 경우가 있을 것입니다.
한번 svnadmin 프로그램을 활용하여, 전체 백업을 하고, 전체 복원을 하는 경우는 조금만 찾아보면 해결방법을 알 수 있습니다(혹시 못 찾는 사람을 위하여, 추후 링크를 달아놓도록 하겠습니다)
저는 기존에 복원을 한 상태에서, 외부와 내부의 svn서버의 버전이 동일하지 않아, 증분 백업을 한 후, 증분 복원을 진행해보고자 하려고 했는데, 생각보다 쉽지 않더라고요.
에러는 다음과 같이 표출되더고요.

<<< 새로운 트랜잭션 시작, 리비전 1565에 기반함.
svnadmin: 파일이 이미 존재함: 파일시스템 '/home/svn/md82/db', 트랜잭션 '1564-17s', 경로 'TEST'
* 경로 추가중 : TEST ...

버전을 아무리 낮추고, 높여도, 계속 이 에러..

<<< 새로운 트랜잭션 시작, 리비전 1564에 기반함.
svnadmin: 파일이 이미 존재함: 파일시스템 '/home/svn/md82/db', 트랜잭션 '1564-17t', 경로 'TEST'
* 경로 추가중 : TEST...

그래서 조금 검색을 해보았더니 이런 내용이 있더라고요.

You have to start over with a fresh repository and load the transactions from the original repository first.

svnadmin dump recovered-repo > dumpfile
svnadmin load new-repo < dumpfile

Then load the new transactions from the end of the current repository you've been working in since the crash. Be sure to specify your revisions to only take the new stuff.

svnadmin dump current-repo -r firstnewrev:lastnewref --incremental > newdumpfile
svnadmin load new-repo < newdumpfile

Because I don't have any repositories to test with, I haven't actually tested this so be careful and don't mess with anything you don't have backed up.



dump를 할 때, --incremental 기능을 사용하지 않았었는데, 한번 회사 복귀하면, 덤프 뜨고, 테스트를 진행해봐야 할 것 같습니다.

※ 추후에 상단의 내용을 위해서, 결국 해결을 했는데, SVN의 증분백업과 증분복원 을 참고하시기 바랍니다.

프로듀스(PRODUCE) 48에 대한 이야기

Posted by MD워시퍼
2018. 5. 17. 15:47 Site & Infomation
728x90

최근 이슈사항에 대해서 한번 인터넷 검색을 해보았다.

엠넷에서 새로운 아이돌 서바이벌 프로그램을 시작하는 것 같더라.
방송국이나 데뷔하는 아이돌이나 둘다 WIN-WIN 할 수 있는 아이돌 서바이벌 프로그램.

'프로듀스 시리즈'중 3번째 프로젝트로써, 2018년 6월 15일에 첫 방송을 한다.
첫번째는 여자 아이돌, 두번째는 남자 아이돌이라고 한다면, 이번에는 일본의 시스템과 결합하여 걸그룹을 선발하는 컨셉이다.
한국에서는 [프로듀스 101]이고, 일본에는 [AKB48]의 걸그룹을 뽑는 프로젝트. 그래서 [프로듀스 48]
이번 트레이너로는 보컬에 이홍기와 소유가 참여할 예정이고, 랩에는 치타, 댄스에는 배윤정, 최영준, 메이제이 리가 참여한다고 한다.

5.18 민주화에 대한 이슈

Posted by MD워시퍼
2018. 5. 10. 10:14 Good Articles/General
728x90

안녕하세요. MD워시퍼입니다.

오늘은 2018년 5월 9일 JTBC 뉴스룸에서 방송된 "계엄군 성폭력"에 관하여 이야기를 나누어볼까 합니다

첫번째로 계엄이 무엇인지 개념을 알아보도록 할께요.
위키백과에서는 다음과 같이 설명을 하고 있네요.
  • 계엄(戒嚴, Martial law) : 전시 또는 사변 등 비상 사태에 있어서 입법권, 행정권, 사법권을 모두 또는 일부 군사령관이 행사하는 제도
이 법령을 가지고 행동을 하던 사람들을 보통 "계엄군"이라고 하죠.
이 계엄군에게 아무 이유없이 고문을 당하고, 성폭행까지 당했다는 분이 JTBL 뉴스룸에 나왔다고 하는데요.
5.18 민주화운동 당시 전남도청에서 출입증, 무기 회수 등 업무와 안내 방송을 맡은 김선옥 씨라고 합니다.

그 분의 이야기는 “계엄군이 성폭행” 38년 만에 결심한 5.18 민주유공자 미투 폭로 를 클릭하시면 자세히 보실 수 있습니다.

5.18 민주화운동은 박정희 대통령의 정권이 마치면서부터 시작을 해야할 것 같습니다.
박정희 정부는 1961년 5월 16일 군사정변으로 정권을 잡은 후, 1979년 10월 26일에 중앙정보부장 김재규에 의해 박정희 대통령이 시해되면서 막을 내리게 됩니다.
박정희 대통령의 사망에 따라 대통령 권한대행이 된 최규하 국무총리는 10월 27일을 기하여 제주도를 제외한 전국에 비상계엄을 선포하게 됩니다.
그것도 잠시, 전두환 대통령의 12.12 사태가 터지고 계엄사령관이 교체되는 소란이 계엄령 하에서 일어나게 됩니다. 이전에도 독재체제였기 때문에, 체제의 큰 변화는 없었던 상황이었습니다.

[Android] 기존 화면에 웹뷰 추가하기

Posted by MD워시퍼
2018. 4. 16. 18:56 Study
728x90
안녕하세요. MD워시퍼입니다.
다른 기업에서 앱을 만든 것을 저희 회사에서 유지보수를 하게 되었습니다.
첫번째로 화면이 추가되었을 때를 위해 추가적으로 작업해야할 것들과 주의해야할 것들을 정리해보고,
추후에 참고하여 개발을 진행해보려고요.
혹시 Android 또는 IOS 개발을 진행하고자 하는 사람이 있다면, 참고하셔도 괜찮습니다.

  1. 이미지 파일 만들기
      일반버튼 이미지
      클릭된 이미지
      웹뷰화면에서의 타이틀 이미지
      ※ 단, 파일명은 대문자를 사용하지 말라는 내용이 있다
      ㅇ 에러 내용 : 'S' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore
      ㅇ 해결방안 : 대문자가 들어있으면 소문자로 변경한다. _를 이용하여 구분하는 것도 좋은 방법이다.
  2. layout폴더에 xml파일(디자인파일) 만들기
      웹뷰에 표출할 내용을 만든다. 난 일단 기존에 있던 파일을 복사해서 하나 더 만들었다.

libpcre.so.1: cannot open shared object file: No such file or directory

Posted by MD워시퍼
2018. 3. 28. 23:39 Study/Centos
728x90
안녕하세요. MD워시퍼입니다.

오랫만에 글을 올리네요.ㅋㅋ

오늘은 개인적으로 일을 하다가 문제 발생시, 해결방법을 올려볼까 해서 이렇게 블로그에 글을 올립니다.

Centos 6 버전에서 yum 으로 몇 가지 라이브러리 업데이트를 한 후에, apache를 실행하려고 헀더니, 에러가 발생했네요..ㅠㅠ

에러 메시지는 다음과 같습니다.
/usr/local/apache2/bin/httpd: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

이럴 때는 어떻게 처리를 할까? 검색을 하다가 아래와 같은 방법으로 해결을 해보았습니다.

1. cd /usr/local/apache2/bin 명령어를 실행하여, 해당 폴더로 이동해봅니다.

2. ldd httpd 를 실행한다. 그럼 다음과 같이 조회가 됩니다.


linux-vdso.so.1 => (0x00007fff691ff000)
libpcre.so.1 => not found
libaprutil-1.so.0 => /usr/local/apache2/lib/libaprutil-1.so.0 (0x00007ff847f31000)
libapr-1.so.0 => /usr/local/apache2/lib/libapr-1.so.0 (0x00007ff847d00000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff847ae3000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff847726000)
libexpat.so.0 => /usr/local/apache2/lib/libexpat.so.0 (0x00007ff8474fb000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007ff8472c2000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff8470be000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff848165000)

역시 libpcre.so.1가 존재하지 않네요. 그럼..

3. libpcre.so.1를 찾아야겠죠?
기본적으로는 /usr/local/lib 안에 있습니다.(출처는 조금만 검색해보시면 아실수 있어요~^^)
근데 확인해봤더니, 이 파일이 없더라고요.
그럼 어디 있을까? 파일명 검색은 find 명령어를 통해 확인해보았습니다.


# find / -name libpcre.so.1


4. 여러 폴더중에 /usr/local/lib_bak 폴더에 있다고 검색이 되었어요.
다른 사람이 여기다가 백업해 놓은 것같은 스멜이~~

5. 해당 파일을 /usr/local/lib로 복사하기 위해 다음과 같은 명령어를 실행했어요

cp /usr/local/lib_bak/libpcre.so.1 /usr/local/lib/


6. 다시 아파치를 실행해보았어요.
# service httpd start
서비스가 제대로 동작한 것 같네요. 웹사이트도 제대로 뜨는 것 같네요.


그럼 다른 문제는 없는지 확인해볼께요~

서버 로그 저장 주기

Posted by MD워시퍼
2018. 2. 2. 11:18 Good Articles/Information Technology
728x90
  • '정보통신망이용촉진및정보보호등에관한법률', '개인정보보호법', '회사사규' 등에 따라 로그 파일은 최소 6개월 이상의 기간은 보관해야하며, 담당자는 로그 기록을 정기적으로 백업·확인·감독 하여야 함.
  • 로그 파일에 저장되는 정보량은 매우 많다. 따라서 효과적인 침입 혹은 침입시도 등의 보안 이벤트를 파악하기 위해서는 로그 설정에서 하나의 로그 파일에 모든 로그를 저장하는 방식이 아닌 적절한 크기로 배분해서 저장하는 Rotation 설정을 이용하여 로그를 수집/관리 해야 한다.
  1. 사용자접속기록 (사용자 로그인/로그아웃/정보변경 등) : 6개월 이상
  2. 개인정보취급자의개인정보처리시스템접속기록 (정보주체 식별정보/개인정보취급자 식별정보/접속일시/접속지 정보/부여된 권한 유형에 따른 수행업무 등) : 2년이상
  3. 개인정보취급자권한변경기록 (개인정보취급자 권한 생성/변경/삭제 등) : 5년이상