6월, 2018의 게시물 표시

[독서] Give & Take

책 제목만 들으면 굉장히 정 없고 주는만큼 상대에게 보답하는 Matcher 같은 느낌이 든다. 하지만 내용을 다 읽고 적절한 제목을 떠올리자면 Just Give! but, 정도가 될 것 같다. Taker들은 남을 이용하고 그들로부터 가치를 추출하는 사람들이다. 단기적으로 보면 그들은 승승장구하고 꽃길만 걷는다. 하지만 그들로부터 당한(?) 사람들은 그들의 마음 속에서 Taker를 멀리하게 된다. 이는 인생이라는 장기 마라톤에서 단거리 스프린트를 위해 주위 주자들을 때려 눕히고 가는 격이다. 골에 도달하지도 못했는데 숨이 턱까지 찬 Taker들의 뒤를 바짝 쫓는 사람들은, 바로 다름아닌 그가 때려 눕혔던 수많은 사람들이다. 반면에 Giver는 그 성과를 제대로 보여주지 못하고, 낙오되는 것으로 보인다. 하지만 주변에 쌓아놓은 덕이 많아 끊임없이 올라간다. 그럼 무조건 Giver가 되어야 할까? 그럼 호구다. 상대가 Taker라는 것을 알면 적절히 자기방어를 할 줄도 알아야 한다. 그래서 but, 을 넣어봤다. 나에게 적용시켜보자면, 나는 사실 Giver와는 거리가 먼 사람인 것 같다. Taker와 Matcher 그 중간 어디쯤 있을거란 생각이 든다. Giver가 되고 싶지만, 본성이 그런 느낌이라 괴로울 때도 많다. 책에서 조언하건대 자신이 Matcher라면 너그러운 Matcher가 되는 것을 제시한다. 주는 거는 많이 잊어버리되 주는 것은 잘 잊어버리라는 것이다. 맞는 말이다. 그러다보면 어느 순간에는 자기도 Giver가 되어 있을거라고 한다. 언젠가 나도 Giver성향이 매우 높아졌던 때가 있었는데, 그 때 내 마음은 굉장히 풍요롭고 행복했던 것으로 기억한다. 굉장히 좋았었다. 좋은 방법으로는, 내가 상대에게 Commitment할 수 있는 때와 시기를 정해두고 그 시간을 온전히 할애하는 것이다. 내 스스로의 안위를 파괴하지 않는 타이밍과 정도로. 가끔 Giver들은 소심하거나 상대에게 폐를 끼치는 것 같...

6/22 오늘의 삽질 - 로그인시 Redirect 주소 문제, AWS BeanStalk 잘못 생성

삽질 목록 1) 2일만에 JSP 프로젝트를 키고 실행하니까 오잉? 로그인 처리가 되긴 되는데 클라이언트 쪽에선 자꾸 실패메시지가 뜬다 (클라이언트쪽에서 실패 콜백을 받은 듯) 그래서 AJAX가 실패했을 때 처리를 자꾸 수행하더라..... 신기한건 refresh를 하니까 또 정상로그인 처리가 된 것처럼 메인으로 이동해짐 ㅋ - 중간중간 확인해보니 로직들은 다 잘 동작하는데 클라이언트쪽에서 404에러가 뜸. 그래서 로그인 성공했을 때 URL값을 조금 바꿨더니 된다. 2) AWS BeanStalk에 Java 웹서버를 만들어서 jar를 올렸는데도 계속 안 됨...알고보니 Java 웹서버가 아닌 Tomcat전용 웹서버가 있었다. - BeanStalk을 Tomcat으로 만들고 eclipse에서 export한 jar를 올리니 잘 됨 3) AWS BeanStalk에서 RDS를 연동하려고 하는데 자꾸 Incompatible Parameter 오류가 나서 연결 안되는 중...

[AWS] AWS의 Ubuntu, Windows 인스턴스에 접속하는 방법

AWS로 인스턴스를 생성했다면 이제 접속할 차례다. 인스턴스의 운영체제에 따라 접속하는 방법이 다른데 하단부를 참고하자. 1) Ubuntu로 접속하는 방법 - 아마존 콘솔(웹사이트)에 접속해서 EC2 서비스로 진입한다. - 네비게이션 바 항목 중 인스턴스 항목으로 진입한다. - 만들어 놓은 서버 리스트 중 ubuntu 를 우클릭하고 connect한다. - 4번 항목의 퍼블릭 DNS를 복사한다. - Xshell로 전환한다. - Xshell에서 열기를 클릭, 세션 새로 만들기를 누른다. - 적절한 네이밍을 해주고 호스트에는 방금 복사했던 퍼블릭 DNS를 붙여넣어준다. - 연결을 누르면 새로운 팝업창이 뜬다. - 이름은 ubuntu 인스턴스로 접속하는 경우엔 항상 ubuntu이다. (다른 운영체재인 경우엔 ec2-user) - 비밀번호는 aws 인스턴스를 생성할 때 다운받은 공개키를 가져온다. - 확인을 누르면 접속이 완료 된다. 2) Window로 접속하는 방법 - 아마존 콘솔(웹사이트)에 접속해서 EC2 서비스로 진입한다. - 네비게이션 바 항목 중 인스턴스 항목으로 진입한다. - 아마존 콘솔(웹사이트)에서 윈도우 서버의 인스턴스를 우클릭한다. - Windows 암호 가져오기를 클릭한다. - 키페어경로에서 파일선택을 누르고 인스턴스를 생성할 때 다운받은 pem파일을 맵핑 시켜준다. - 암호해독을 누르면 비밀번호가 나타나고, 그 비밀번호를 복사해둔다. - 윈도우로 전환하여 실행창에서 mstsc를 입력한다. 사용자이름이 admin인지 확인한다. - 연결버튼을 누르고 비밀번호 입력창이 뜨면 방금 복사했던 비밀번호를 붙여넣는다.

[AWS] AWS 기본정보 및 인스턴스 생성

AWS는 이제는 너무나 친숙한 용어다. 아마존에서 제공하는 클라우드형태의 서버를 의미한다. 사실 AWS는 여러가지 서비스들이 있는데 우리가 통상적으로 의미하는 클라우드 컴퓨팅 서비스의 서비스 명칭은 EC2이다. 아마존에 가입한 후 아마존 콘솔에 로그인하면 서비스 탭 안에 EC2 항목이 있다. EC2 항목을 클릭하면 인스턴스라는 것을 보게 된다. 사용자 입장에선 이게 바로 클라우드 컴퓨터 1대를 의미한다. 그래서 인스턴스 1개 대여 = 클라우드 컴퓨터 1대 대여. 라고 할 수 있다. (실제로는 그렇지 않다만) 직접 인스턴스를 생성해보았다. 놀랄정도로 매우 간단하다. 현재는 AWS가 한글화가 잘 되어 있어 누구나 쉽게 인스턴스를 생성할 수 있을 것이다. 인스턴스 시작버튼을 누르면 생성하고자 하는 인스턴스의 운영체제, CPU, MEMORY, STORAGE와 약간의 부가적인 부분만 설정하면 된다. 요금제는 다양하고 재미있는 정책을 취하고 있는데 1 온디맨드 방식 (내가 원할 때 인스턴스를 키고 끌 수 있으며 사용한 시간에 비례하여 요금이 부과되는 옵션) 2 예약 방식 (일종의 정액제 개념으로 사용하고자 하는 기간을 미리 지정하면 해당 기간에 대한 요금이 부과되는 옵션) 3 스팟 방식 (아마존의 잉여 인스턴스 수에 따라 가격이 달라지는 옵션)이 있다. 어쨌든 대부분의 개인 사용자는 1년짜리 free티어를 사용하게 될 것이고, free티어에서 사용할 수 있는 각 종 설정의 최대치는 이미 정해져 있으므로 그 최대치 안에서만 설정해주면 된다. 설정 중 마지막에 step은 바로 security 설정이다. 기억해둘만한 사항은 Linux계열 컴퓨터의 원격제어는 SSH 프로토콜을 통해 제어하고, 윈도우는 RDP 프로토콜을 통해 제어한다는 것이다. SSH 프로토콜은 주로 22번 포트를, RDP 프로토콜은 3389를 쓰는 것 같다. 인스턴스가 리눅스라면 SSH 프로토콜로 접속해야 하는데, 만약 접속하고자 하는 PC가 윈도우라면 기본적으로 SSH로...

Oracle DB로 아주 간단한 프로시져 만들기

아주 간단한 프로시져를 만들어보자. 프로시져란 무엇인가? - 함수와 다른 점이 있다면 return하는 값이 있는지 없는지 차이이다. - 프로시져는 return 값이 없지만, 함수는 return하는 값이 있다. 다음은 프로시져에 대한 간단한 예제이다 빨간색으로 된 부분은 주석이고 복사/붙여넣기 할 때 지우면 된다. 기본 골격은 아래와 같은데, 나중에 보면 이해가 안될 수 있으므로 아래에 예제를 첨부했다. CREATE OR REPLACE PROCEDURE [procedure_name(variable_name IN/OUT/IN OUT datatype) IS BEGIN   your_logic END procedure; CREATE OR REPLACE PROCEDURE change_pro(i_id IN varchar2) change_pro는 프로시져 이름이다. i_id IN varchar2 는 varchar2 데이터 타입의 i_id 변수가 해당 프로시져의 input으로 사용 된다는 뜻이다. 여기서 i_id는 프로시져가 받는 인자에게 붙여주는 이름이다. (자바의 메소드 인자처럼) IS BEGIN BEGIN부터 실제 로직 처리가 이루어진다.     UPDATE TEST TEST 테이블을 업데이트 한다. (당연히 TEST 테이블은 미리 존재해야함)     SET AGE = 100 AGE라는 칼럼의 값을 100으로 SET한다. (당연히 AGE 칼럼은 미리 존재해야 함)     WHERE USERID = i_id;  USERID 칼럼이 i_id 변수에 담긴 값과 같은 경우 해당 로직이 처리 된다. 여기서 i_id는 아까 내가 입력한 파라미터값을 담고있는 변수다. END change_pro;

[JSP] Form태그로 submit한 한글이 깨질 경우

여러 방법이 있어서 혼재되었을 수 있다. (쓸모 없는 절차가 포함되어 있을 수도 있다는 뜻) 예전에 WAS에서 get방식으로 UTF-8 인코딩하는 방식은 배웠었다. (Server.xml을 수정) Form태그로 한글을 써서 제출하면 ì €ë©€ë¦¬  이런 식으로 계속해서 한글이 깨져 나왔었는데 체크해 볼 것이 3가지가 있다. 1. Form을 보내는 페이지에 Encoding이 정상적으로 되어 있는지 2. Form을 받는 서블릿에서 Encoding이 정상적으로 되어 있는지 3. dao를 통해 객체를 업데이트 할 때도 Encoding이 필요한지? 4. 결과물을 보여주는 페이지에서 Encoding이 정상적으로 되어 있는지 나의 경우엔 2번이 되어있지 않았다. FrontController에서 request.setCharacterEncoding을 utf8로 지정해주고 그 값을 넘겨주니 문제없이 한글이 노출되었다. 즉 이 경우에 결론은, Request에 인코딩이 되지 않아서 간단히 해결 된 경우지만 인코딩이 되지 않았을 경우 처음~끝까지의 프로세스에 인코딩이 빠진 부분이 있는지 살피는 것.

[JSP] JSTL 사용하기

JSTL은 JSP Standard Tag Library로 기존 JSP의 복잡한 코드들을 간결화 시켜줄 수 있도록 사용하는 태그를 의미한다. JSTL을 사용하려면 간단한 설정이 필요하다. 말이 간단하지만.. 처음에 잘 안 되어서 삽질을 했었는데, 결국 알아낸 방법은 아래와 같다. 1) 다 필요없고 일단  여기서  jakarta-taglibs-standard-1.1.2.zip 를 다운 받는다. 2) 다운로드 완료 후 압축을 해제하여 jstl-1.2.jar와 standard-1.1.2.jar가 있는지 확인한다. 3) 프로젝트 폴더/WEB-INF/lib에 위 두개의 라이브러리를 추가한다. 4) JSTL을 사용하고자 하는 페이지 최상단(JSP 선언식 아래)에 다음과 같이 넣는다. <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %> -끝- 여기까지 하면 대체로 많이 쓰는 JSTL 태그는 사용 가능하다. (추가로 더 많은 태그를 쓴다면 자세한 설명은 여기서 참고하자) <c:out> 사용방법은 아래와 같다. <c:out value="${'hello World'}" /> 실제 출력되는 값 = hello World