반응형


알고리즘에 대한 관심이 많아지면서 서점에는 관련 서적들이 쏟아져 나왔다. 나도 전공이 컴퓨터 공학인지라 관심있게 보는 분야 중 하나이다. 그런데 볼 때마다 느낀점은 좀더 쉽게 설명해줄 수는 없을까라는 아쉬움이었다. 물론 책을 쓴 저자는 쉽게 쓰려고 노력을 했겠지만 내가 이해할 수 가 없어서 좀더 쉬운책을 찾아보게 되었다. 한빛미디어 "나는 리뷰어다" 로 선정되어서 이 책을 받게 되었는데 책 표지부터 상당히 맘에 들었다. 알고리즘 관련 책인데 고리타분한 딱딱한 디자인이 아니어서 쉽지 않은 내용을 쉽게 설명을 했을것 같은 느낌이 들었다. 


책 내용을 살펴보면 우선 그림이 많다. 설명도 설명이지만 그림을 활용해서 쉽게 이해할 수 있도록 내용을 구성해 놨다. 그림 느낌이 약간Head first 시리즈에서 봤던 그림체라는 생각이 잠깐 들었다. 책 내용에 색깔도 있어서 책을 읽는데 지루하지가 않았다. 프로그래밍 책 하면 코드와 글자로 구성이 되어있으면서 온통 검정색 글씨로 도배가 되어있는데 이 책은 그렇지 않았다. 책을 읽는데 부담도 없고 그림책 읽는 듯한 느낌이 들었다. 


 

그리고 컴퓨터 서적에 각 챕터마다 빠지지 않는 요약과 연습문제가 있다. 각 챕터에서 설명했던 내용들을 간단하고 쉽게 정리를 해두었다. 그리고 내용을 반복할수 있도록 연습문제도 포함되어있다. 연습문제라고 해서 그렇게 어렵지는 않고 공부했던 내용을 잘 생각해보면 충분히 풀수 있는 수준이다. 문제의 정답은 책 마지막 부분에 있다. 

마지막 챕터에서는 이 책에서 자세히 설명하지 않은 다른 알고리즘들에 대해서 간단히 소개를 해주고 있다. 그래서 추가적으로 공부해야 할 것이 무엇인지, 아니면 내가 관심있어 하는 알고리즘이 어떤 알고리즘인지에 대한 방향성을 부여해줄 수 있다. 

https://github.com/egonSchiele/grokking_algorithms

책에서 설명된 github 에 가면 알고리즘의 소스코드를 확인해 볼 수 있다. 스스로 직접 코딩을 해보는 것이 가장 좋은 방법이지만 참고할 자료가 있다는것도 충분히 도움이 된다. 책으로 읽었던 내용을 코드를 봄으로써 좀더 이해가 빨라질 수 있기 때문이다. 처음에는 python으로 코드가 되어있다고 했었는데 직접 들어가 보면 python, ruby, java, javascript 등 다양한 언어로 코드가 작성되어있다. 내가 직접 코드를 작성해보고 비교해보는것도 좋은 학습 방법이 될수 있을것 같다.

알고리즘에 대한 설명을 마치 동화책처럼 내용을 만들어서 쉽게 이해하고 접근할수 있도록 해주는 책이다. 처음 알고리즘을 공부하는 사람이 기초를 잡기 위해서 한번쯤 읽어본다면 많은 도움이 될것 같다. 

"Hello Coding 그림으로 개념을 이해하는 알고리즘" 의 자세한 내용은 한빛미디어 홈페이지에서 확인할 수 있다.


Hello Coding 그림으로 개념을 이해하는 알고리즘
국내도서
저자 : 아디트야 바르가바(Aditya Y. Bhargava) / 김도형역
출판 : 한빛미디어 2017.04.01
상세보기


728x90
반응형
반응형

딱히 내가 좀비 물을 좋아하지는 않는다. 공포 영화, 좀비물등을 싫어 하는데 유일하게 전 시리즈를 다 본 영화가 레지던트 이블이다. 그렇다고 광팬이거나 너무 재미 있어서 찾아본 것은 아니다. 시리즈가 또 나오고 이야기가 궁금해서 찾아봤을 뿐이다. 그 이상도 이하도 아니다. 


영화를 보고 나서 대체 이 시리즈 첫 개봉이 궁금해졌다. 


http://movie.naver.com/movie/bi/mi/basic.nhn?code=34514


네이버 검색을 해보니 2002년 6월 13일날 1편이 개봉했다. 극장가서 본 적은 한번도 없지만 시리즈가 10년이 더된 영화다. 거의 캐리비안 해적과 동급인 영화이다. 그렇다고 전체 시리즈가 계속해서 이어지는것도 아니다. 이어지는것은 주인공인 밀라 요보비치 정도. 나머지 캐릭터들은 갑자기 나왔다가 사라졌다를 반복한다. 죽은줄 알았는데 살아서 나타나고, 분명이 살아 있었는데 이번 시리즈에서는 안나오고. 어떻게 보면 막장이다. 


이번 작품도 시작부터가 좀 막장이었다. 분명 전편에서 웨스커가 앨리스를 워싱턴으로 불러서 같이 막아야 된다라고 하면서 끝났는데 중간과정은 싹뚝 잘라먹고 시작한다. 그리고 앞시리즈에서 앨리스가 죽였던 닥터 아이작 박사가 나온다. 그래놓고 하는 말이 전에 죽은 애는 클론이랜다. 그리고 영화를 보면 알겠지만 이말을 한 아이작 박사도 실은 클론이고 오리지널은 잠자고 있다가 영화 중후반에 깨어난다. 뭔가 이야기를 끝내기 위해 억지로 끌어다 맞춘것 같은 느낌이 계속 들었다. 그리고 웃긴것은 아이작 박사 오리지널하고 클론이 서로 진짜라고 싸우다 서로 죽인다. 뭔가 어디에선가 많이 보던 레파토리 이다. 


결국 영화 마지막에 앨리스가 안티 T 바이러스를 공기중에 노출시켜서 T 바이러스에 감염된 모든 존재가 죽게 된다. 앨리스가 안티 T 바이러스를 노출 시키자 마자 좀비 무더기들은 도미노 쓰러지듯이 차례로 다 쓰러진다. 분명 죽어서 쓰러지는 장면인데 이 장면을 보면서 반지의 제왕 마지막에 모든 사람들이 호빗한테 고맙다고 인사하는 장면이 오버랩이 됐다. 반지의 제왕에서의 장면은 굉장히 가슴 뭉클했는데 이 영화에서 쓰러지는 좀비들을 보고있자니 헛웃음이 나왔다. 아무리 공기중으로 확산된다고 하지만 좀 너무했다. 원래대로라면 T 바이러스에 감염된 앨리스도 죽어야 하지만 당연히 죽지 않는다. 죽을리가 없다. 


드디어 길고 길었던 레지던트 이블 시리즈가 막을 내렸다. 설마 또나오진 않겠지. 전체 시리즈 생각 안하고 그냥 액션만 생각하고 볼거면 괜찮다는 생각이 든다. 하지만 전체 시리즈를 놓고 본다면 중간중간 이빨 빠진 부분이 있기 때문에 황당하다는 느낌이 들수도 있다. 어차피 개인의 취향이고 최종화이기 때문에 기존 시리즈를 본 사람이라면 한번쯤은 봐줄만 하다는게 내 결론이다. 



728x90
반응형
반응형


프로젝트 내부에는 설정파일들이 많이 있다. 대표적인 항목이 DB 접속 정보가 있다. 

그런데 이 접속정보에는 ID, PASSWORD 가 항상 존재 한다. ID는 상관이 없지만 PASSWORD 정보가 파일 내부에 평문으로 적혀있으면 외부에 노출될 위험이 있다. 그래서 암호화를 해야 한다. 


Jasypt를 이용하면 이런 항목들을 쉽게 암호화 할 수 있다. 



먼저 라이브러리를 다운로드 받는다.


http://www.jasypt.org/download.html


사이트에 들어가보면 상단에 DOWNLOAD JASYPT 라는 링크가 있다. 그 걸 누르면 라이브러리를 다운로드 받을 수 있다. 

이 글을 쓰는 시점의 버전은 1.9.2 이다. 


다운로드 한다음 사용 방법은 간단하다. 압축을 푼후에 bin 폴더로 이동한다. 


그리고 콘솔창(윈도우cmd 창)에서 아래와 같이 입력한다. 




encrypt input="password" password="pwkey" algorithm="PBEWITHMD5ANDDES" 



input 항목에는 실제 사용하고 있는 패스워드를 입력하면 되고 password 항목에는 암호화된 값을 복호화 할때 사용되는 key 값을 넣으면 된다. 임의로 정해서 넣으면 된다.


명령어 실행 결과.



----ARGUMENTS-------------------

algorithm: PBEWITHMD5ANDDES

input: password

password: pwkey

----OUTPUT----------------------

oQV892dssDi5Xzs9tQoVuaqyRaFa7Za5 



여기에서 보이는 OUTPUT 항목이 실제 암호화 된 값이 된다.


이제 암호화 된 값 생성까지는 완료가 됐고 실제 spring 프로젝트에 적용을 하면 된다.


먼저 Jasypt 라이브러리르 추가한다. 


Mvn repository 에 가서 jasypt 검색을 하면 정말 많이 나온다.  최신버전으로 찾아서 넣으면 되긴 하는데 여기에서 주의할 점이 있다. 


최신버전의 라이브러를 추가하고 어플리케이션을 run 했을때 version  관련 오류가 날수가 있다. 이경우에는 현재 Spring 버전이 jasypt 최신버전과 호환이 안되던지 아니면 jdk 버전이 호환이 안되던지 둘중 하나이다. 실제로 jasypt 라이브러리 depency를 보면 spring 4.3.8 Release 와 dependency 가 되어있다. 그래서 주의를 해야 한다.


나 같은 경우는 실제로 버전 충돌때문에 build.gradle 에 아래와 같이 추가를 했다. (spring boot 버전도 1.3.8 아래였고 jdk 버전도 7이었다.)


compile('com.github.ulisesbocchio:jasypt-spring-boot-starter:1.4-java7')




spring 설정 파일에 아래와 같이 정의를 한다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    <bean id="encryptorConfig" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
        <property name="algorithm" value="PBEWithMD5AndDES" />
        <property name="password" value="pwkey" />
    </bean>
     
    <bean id="encryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
        <property name="config" ref="encryptorConfig" />
    </bean>
     
    <bean class="org.jasypt.spring3.properties.EncryptablePropertyPlaceholderConfigurer">
        <constructor-arg ref="encryptor" />
        <property name="locations">
            <list>
                <value>classpath:/properties/db.properties</value>
            </list>
        </property>
    </bean>
cs


그리고 마지막으로 설정 파일의 password 값을 암호화 한 값으로 넣어준다. 반드시 ENC라고 쓰고 괄호안에 값을 넣어야 한다.


1
datasource.password=ENC(EywTY3v00EbqKyxlLzkjag==)
cs


이렇게 하면 password 값을 읽어들일때 암호화 된 값을 읽어서 자동으로 복호화 한다.


Spring boot 일 경우에는 아래와 같이 설정해주면 된다.


먼저 Encryptor 를 정의한 class를 만들어준다.


1
2
3
4
5
6
7
8
9
10
11
12
13
@Configuration
public class PropertyEncryptConfiguration {
 
   @Bean
   static public StandardPBEStringEncryptor stringEncryptor() {
      StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
      EnvironmentPBEConfig config = new EnvironmentPBEConfig();
      config.setPassword("pwkey");
      config.setAlgorithm("PBEWITHMD5ANDDES");
      encryptor.setConfig(config);
      return encryptor;
   }
}
cs



그리고 main class 에 @EnableEncryptableProperties 를 추가해준다. 그럼 설정이 마무리 된다. 


암호화 하는 과정이 번거롭다면 그 부분만 따로 테스트 케이스를 만들어 놓는것도 좋은 방법이다.


728x90
반응형

'Development > Java' 카테고리의 다른 글

[Spring Security]간단 Spring Security  (0) 2017.06.27
[Spring]Controller Test 하기  (0) 2017.06.12
[SpringCloud]Spring Config..  (0) 2016.01.26
spring Cache  (0) 2015.12.05
Spring propagation  (0) 2015.12.01
반응형


알고리즘(라틴어독일어: Algorithmus, 영어: algorithm 알고리듬[*]IPA[ǽlɡərìðm])이란 어떠한 문제를 해결하기 위한 여러 동작들의 모임이다. 유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다. 수학과 컴퓨터 과학에서 알고리즘이란 작동이 일어나게 하는 내재하는 단계적 집합이다. 알고리즘은 연산, 데이터 진행 또는 자동화된 추론을 수행한다.

출처 : https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98


알고리즘은 문제 해결 능력이다. 

문제를 푸는 방법에는 여러가지 방법이 있을 수 있다. 하지만 각각의 해결 방법들은 비용과 시간이 다르다. 우리는 최소한의 비용과 시간으로 문제를 해결하기 위해서 알고리즘을 적용한다. 


얼마전에 회사에서 보는 알고리즘 시험을 드디어 통과를 했다. 거의 1년 만이다. 매주 주말마다 출근을 하는 것처럼 하루를 소비했다. 

처음 시작할때에는 분명 의욕이 있었다. 개발을 하니깐 전혀 관련이 없는 것도 아니고 배워둬서 나쁠것도 없다고 생각을 했다. 백준 온라인 저지나 정올 사이트에서 문제를 하나씩 풀어보기도 했다. 항상 잘 풀리지는 않았지만 그래도 한문제 해결하고 나면 뿌듯함이 있었다.  그런데 기간이 일주일, 이주일, 한달, 두달 길어지니깐 피로가 쌓였다. 주말에 계속 나가는것에 대한 육체적 피로도 있었지만 정신적 피로가 더 컸다. 


'내가 이것을 풀수 있을까? 공부해서 뭐해? 어짜피 시험 문제 나오면 못푸는데? 이건 내가 풀수 있는 문제가 아니야.'


이런 생각들이 점점 커져갔고 어느샌가 문제 풀이 연습도 안하게 됐다. 매주 보던 시험을 한달에 2번정도로 줄였다. 예전에는 문제를 풀어보려고 끝까지 낑낑대며 머리를 쥐어 짰다면 이제는 딱 봐서 못풀겠다 싶으면 그냥 나왔다. 이런 패턴이 반복되니 기존에 알고 있던 알고리즘들 조차도 구현 방법이 가물가물 해져갔다. 언젠가는 합격하긴 하겠지라는 밑도 끝도 없는 이상한 믿음만 있을 뿐이었다. 


그러던 중 한번의 기회가 찾아왔고 그 기회를 운좋게 잡았다. 풀긴 풀었지만 이건 내가 생각해봐도 운이 좋았다고 밖에 할수 없었다. 기존에 봤던 시험보다는 확실히 난이도가 낮았다는 느낌이 들었다. 문제를 읽으면서도 이건 풀겠는데 라는 생각이 들었다. 테스트케이스가 다 맞고도 혹시나 해서 몇번을 더 돌려봤다. 시간도 범위 안에 잘 들어온다. 그리고는 난 시험장을 나왔다. 그리고 시험을 통과를 했다. 


아주 긴 시간이 걸렸지만 어쨌든 결과물을 만들어냈다. 하지만 뭔가 씁쓸한 아쉬움이 남는다. 분명 알고리즘을 하나씩 배워나가고 문제를 푸는게 싫지는 않다. 재미있다. 하지만 재미있는 일이 어느 순간 재미 없는 일이 되었다. 시험이라는 울타리가 없었다면 좀더 재미있게 공부도 하고 토론도 했을것 같다는 생각이 들었다. 


올해 들어서 알고리즘 관련 책들을 쳐다보지도 않았는데 시험을 합격한 이후에 관련 책을 읽기 시작했다. 정말정말 아이러니 하다. 지긋지긋 했던 "시험" 이 끝났기 때문에 이제는 즐길수 있을 만큼 여유가 생긴것 같다. 다시 되찾은 즐거움을 소중히 하고 앞으로도 내가 생각한 즐거움 들이 사라지지 않게 잘 지켜나가야 겠다.



728x90
반응형
반응형


최근에 PS4를 사려고 벼르고 있었는데 이번에 타이틀 3개를 포함한 번들팩이 나온다고 해서 구매를 했다.


번들팩구성은 아래과 같다.


  • PlayStation®4 with 500GB HDD x 1 (CUH-2017AB 01 또는 CUH-2017AB 02)
  • PS4™ 용 “Horizon Zero Dawn™” 한국어판 디스크 버전 x 1
  • PS4™ 용 “DRIVECLUB” 한국어판 디스크 버전 x 1
  • PS4™ 용“Ratchet & Clank” 한국어판 다운로드 코드 x 1
  • PlayStation®Plus 3개월 이용권 x 1

일단 Horizon 과 DRIVECLUB 이 있어서 나오면 무조건 구매하기로 생각을 했다. 다운로드 버전도 아닌 디스크 버전이라서 구성이 정말 맘에 들었다. 

다행히 신도림 테크노 마트에 한우리에 가니 물량이 넉넉히 있었다. 온라인으로 구매를 하면 혹시나 싸게 살수 있을지도 모르겠지만, 최근 한달동안 플스 사려고 인터넷 뒤지던것을 생각하지 신물이 나서 바로 구매를 했다. 정말 거의 한달 넘게 최저가 때리면서 계속 쇼핑몰 뒤지고 다녔는데 이제 끝났다.



 


아주 중요한 구매도장을 받고 가져왔다. 그런데 인터넷 찾아보면 a/s 도 기간내에서 무조건 무료는 아닌것 같아서 이 도장이 정말 큰 의미가 있는지는 잘 모겠다. 


 


왼쪽이 전체 구성 박스이고 저 박스를 개봉하면 오른쪽과 같이 또 박스가 나온다. 정말 박스 개봉할때 어찌나 감격스러운지 좋아서 웃음이 끊이질 않았다. 최근 Sony 에서 500GB 에 대한 재고 떨이를 위해서 이번 번들 패키지를 준비한 거라는 소문이 있다. 그래서 북미쪽에서는 1TB 가격이 500GB 가격과 같아졌다는 게임 사이트 글을 봤다. 기다리면 1TB짜리를 저렴한 가격으로 살수도 있겠지만 어차피 기회비용이니깐. 그리고 최근에 업데이트 하면서 500GB에 외장하드 장착이 가능해져서 굳이 1TB짜리도 필요 없을것 같다. 부족하면 나중에 외장하드 하나 사서 달면 되겠지.


 


본체 상자를 열어서 모든 구성품을 빼보니 이렇게 나온다. 본체가 생각보다 무거워서 약간 당황하긴 했다. 예전에 가지고 있던 플스2보다 몇배다 더 무거웠다. 아마도 하드디스크가 달려있어서 그런것 같다. 



약간 아쉬웠던 것은 게임 타이들이 각각의 케이스에 포장되어있을줄 알았는데 이렇게 합쳐져 있었다. 아마도 소니에서 타이틀 파는것을 막기위한 꼼수를 쓴것 같다. 각각의 디스크로 구성되어있긴 하지만 케이스 하나에 담겨있을 줄은 생각도 못했다. 

사진에는 없지만 케이스 안에 PSN 3개월 이용권도 같이 들어있다. 


아직 패드가 1개밖에 없어서 조만간 패드 1개를 더 구매 해야겠다. 와이프가 게임을 싫어하는게 아니어서 같이 할수 있는 게임을 찾아서 하면 정말 재미있을것 같다. 그리고 회사 정보자료실에 블루레이도 대여가 되니깐 가끔 빌려와서 영화를 보는것도 아주 유용할것 같다. 


정말 꿈에도 그리던 PS4를 사서 행복한 날이다. !!!


728x90
반응형

'P's Life' 카테고리의 다른 글

철권7 일반판 예약후 수령!!!  (0) 2017.06.04
다시 찾은 즐거움.  (0) 2017.04.25
게이밍 장패드와 게이밍 마우스 패드  (0) 2017.04.06
드디어 애드센스 승인을 받았다!!  (3) 2017.04.05
좋은 글쓰기란??  (3) 2017.03.20
반응형

현재 우분투 리눅스가 설치되어있는 넷북은 작업 환경이 정말 열악하다.

집에서 쓰는 거라서 보조 모니터가 있는것도 아니고 조그만한 화면을 들여다 보고 있으면 정말 목이 아프다. 

그래서 굳이 넷북에서 직접 작업할 필요가 있을까라는 생각을 했다. 

데스크탑도 있고 맥북도 있는데 굳이 그 조그만한 화면을 들여다 볼 필요가 있을까라는 생각을 했다. 

원격 접속해서 사용해도 큰 무리가 없을것 같은데.


그래서 책을 찾아보니 OpenSSH 서버라는 것이 있었다. 


telnet 과는 거의 동일 하지만 데이터 전송 시 암호화를 한다는 차이점을 가지고 있다. 


apt-get install openssh-server


이렇게 간단하게 명령어 한번만 치면 설치가 순식간에 진행된다. 



참고로 내가 사용한 -y 옵션은 패키지 설치시 설치여부 확인을 자동으로 진행해주는 옵션이다. 



systemctl restart ssh : 서비스를 재기동한다.

systemctl enable ssh : 서비스를 항상 기동하도록 설정한다.

systemctl status ssh : 서비스 상태를 확인한다. 


그리고 나서 여기 캡쳐 상에는 없지만 ufw allow 22/tcp 로 방화벽에서 SSH 포트인 22번 포트를 허용하도록 한다.



이 화면은 맥북에서 접속한 화면이다. 

ssh 사용자이름@IP 로 접속을 하면 된다. 위에는 이름과 IP 가 나와서 블러 처리를 했다. 

이렇게 함으로써 이제부터는 굳이 작은 넷북 화면 안쳐다보고 맥북에서 작업을 할 수 있게 되었다. 

필요한 것을 찾아가면서 이것 저것 적용해보는 재미가 쏠쏠한것 같다. 그러면서 아는것도 생기니 일석이조다. 


728x90
반응형

'Development > Linux' 카테고리의 다른 글

dpkg lock 에러  (0) 2020.09.17
netstat 사용 중인 포트 찾기  (0) 2020.07.30
우분투 리눅스 설치 삽질기!  (3) 2017.04.17
Command Line 명령어  (0) 2016.01.14
sed 명령어  (0) 2016.01.12
반응형

집에 있던 삼성 넷북 NT-N150을 어떻게 하면 쓸수 있을가 고민을 했다. 

처음 샀을때에 윈도우 XP가 깔려 있던 모델이고 성능을 봐서도 거의 폐급 수준이다. 도저히 그냥은 사용할 수 없는 수준이어서 업그레이드를 시도했다. 


마침 집에 있던 128기가 짜리 SSD가 있어서 하드는 이것으로 교체했다. 어차피 공부용으로 쓰거나 테스트 용으로 사용할거라서 많은 용량은 필요하지 않았다. 그리고 2기가 램을 하나 구매해서 기존 1기가 램과 교체를 했다.


자. 이제 하드웨어는 준비가 끝났고 OS는 뭘 깔아야 할까.


데스크탑은 윈도우10을 쓰고 있고 , 맥북에는 맥OS 가 설치되어있고. 이제 남는것은 리눅스다. 

그럼 리눅스는 어떤것을 설치해야 하나. 이번에 한빛 리더스를 통해서 받은 우분투 책도 있겠다 공부도 할겸 우분투로 정했다. 


그런데 이렇게 보면 정말 짧은 몇줄로 끝난 일이었지만 여기까지 오는 길은 정말 많은 일들이 있었다. 


비하인드 스토리.

처음에는 그냥 넷북에다 ubuntu-16.04.2-desktop-amd64 이미지를 받아서 무작정 설치했다. 물론 설치는 성공적으로 끝났다. 하지만 이건 너무 느려서 마우스를 움직일 수 없는 지경이었다. 그래서 혹시 64비트를 설치해서 그런가? 라는 생각에 ubuntu-16.04.2-desktop-i386을 받아서 설치했다. 하지만 결과는 똑같았다. 그래서 이번에는 14 버전 이미지를 받아서 설치해봤다. 여전히 느리다. 

인터넷을 검색해 보니 centos 가 좀더 가볍다고 하길래 centos 를 받아서 설치를 했다. 그런데 이번에는 설치가 안된다. 

설치가 안됐던 원인은 이미지를 usb 부트디스크로 만드는 과정에서 난 Universal-USB-Installer-1.9.7.2를 사용했는데 이게 잘 작동을 안해서였다. 이미지 만들때 이미 에러가 난 상황이니 설치가 제대로 안될 수 밖에. 이것때문에 설치만 4,5번 했다. 

centos를 설치해서 봤는데 뭔가 만족스럽지가 않다. 여전히 느렸기 때문이다. 

다시 검색을 해보니 루분투라는게 있더라. 그래서 다시 그 이미지 구해다가 설치를 했는데 이건 뭔가 더 맘에 안들었다. 

그래서 내린 결론은 지금의 성능으로는 그냥 아무것도 못하는게 맞다는 결론을 내렸다. 그래서 위에서 쓴것과 같이 업그레이드를 했다.

그리고 나서 다시 ubuntu-16.04.2-desktop-i386를 설치했다. 그랬더니 그래도 할만한 정도로 넷북이 돌아갔다. 처음에 64비트를 설치 안한 이유는 그래도 혹시나 성능이 딸릴까봐 32비트를 설치했다. 그런데 우분투에 Docker를 설치하려고 했더니 64비트를 설치하라는 말이 있어서 결국은 다시 ubuntu-16.04.2-desktop-amd64로 바꿔 설치했다. 대체 몇번을 재설치 한건지 모르겠다.

비하인드 스토리 끝.


아래 화면들은 설치하면서 아이폰으로 찍은 과정이다. 



USB를 꼽고 부팅을 하면 위와 같이 화면이 나온다. 

여기에서 한국어 선택하고 계속을 클릭한다. 



무선 네트워크는 아직 연결하지 않는게 좋다고 나와있어서 연결을 하지 않았다.

연결을 하게 되면 업데이트 항목까지 설치 시점에 다운로드 하기 때문에 시간이 많이 걸린다고 한다.



그래픽과 와이파이 정도는 설치를 해줘야 하기때문에 아래를 체크하고 계속을 클릭한다.



항상 OS를 설치할 때에는 무조건 깨끗한게 좋다. 어차피 백업할 자료도 없기 때문에 무조건 싹 지우고 설치한다. 



난 서울에 살고 있기 때문에 서울 선택하고 계속 버튼을 누른다.



계정 이름과 정보를 누르고 암호도 넣어준다. 



그러면 이렇게 파일 복사하고 설치가 완료된다.




봤듯이 설치는 간단하다. 하긴 요즘은 윈도우도 USB 로 부팅디스크 만들어서 설치하면 금방 다 설치가 되니 별다른 차이는 없는것 같다. 

이렇게 해서 나의 우분투 리눅스 설치 삽질이 끝났다. 덕분에 우분투 이미지 만들어서 설치하는것은 눈감고도 할수 있을것 같다. 아주 많은 삽질과 시간과 비용이 들어갔지만 재미는 있었다. 어렵게 설치하고 만들어놨으니 앞으로 공부하면서 잘 써먹어야겠다. 



728x90
반응형

'Development > Linux' 카테고리의 다른 글

netstat 사용 중인 포트 찾기  (0) 2020.07.30
openSSH 서버 활용하기  (0) 2017.04.18
Command Line 명령어  (0) 2016.01.14
sed 명령어  (0) 2016.01.12
[Unix]tar 명령어  (0) 2012.11.12
반응형




  내가 마이크로 서비스 라는 말을 처음 들었던 것은 재작년이었던 것 같다. 회사에서 업무 때문에 처음 접하게 되었던 이 용어는 좀처럼 이해하기가 쉽지 않았다. 그리고 마이크로 서비스라는것 자체가 아직은 먼 이야기라고 생각이 되었다. 그때만 해도 "말이 쉽지. 이게 되겠어?" 라는 의심이 더 컸던것 같다. 하지만 최근에는 많은 서비스 들이 기존의 물리적 인프라 위에서 서비스를 제공하는게 아니라 클라우드 상에서 서비스를 제공하는 일이 많아 지면서 마이크로 서비스 아키텍처라는게 더 힘을 받고 있는것 같다.  


마이크로서비스


마이크로서비스란 작고 자율적으로 협업하는 서비스를 의미한다.


  단어의 뜻 자체는 그렇게 어렵지 않다. 말 그대로 "Mirco(작은단위)" + "Service",  작은 단위의 서비스를 말한다. 각각의 서비스들은 하나의 독립된 주체이며 전체는 각각의 서비스들의 집합라고 생각하면 될것 같다. 하지만 이렇게 시스템을 구성하기에는 그렇게 쉬운 일은 아니다. 이 책에서는 이렇게 쉽지 않은 마이크로서비스 아키텍처에 대해서 알아야할 이론적인 내용에 대해서 설명해주고 있다. 마이크로 서비스에 대한 정의부터 시작해서 모델링, 통합, 분해, 배포, 테스팅, 모니터링, 보안에 이르기 까지 전체적인 그림을 그릴 수 있는 내용을 담고 있다. 


  많은 내용을 담고 있지만 그중에서도 몇가지 눈여겨 본 대목을 뽑아봤다. 



  하나의 시스템을 설계 하는데에 아키텍트의 역할은 정말 중요하다. 위에 글처럼 아키텍트가 결정한 방향의 파급력은 프로젝트 내에서 정말 어마어마 하다. 방향 한번 잘못잡았다가 프로젝트가 산으로 가는 경우도 정말 많다. 그만큼 아키텍트는 의사결정에 있어서 신중해야 하고 많은 것들을 고려해야 하는 역할을 가졌다. 그리고 설계와 함께 개발에 대해서도 어느정도 이해를 하고 있어야 한다. 수채화를 그리는데 밑그림만 다 그렸다고 그림이 완성된것은 아니다. 밑그림 위에 알맞은 색깔을 칠한 후에야 그림이 완성되는 것이다. 그렇기 때문에 아키텍트가 그린 그림을 구현하는 개발 담당자들과의 협업이 그만 큼 중요하다. 가끔 이 역할 관계가 갑을관계처럼 엮이는 경우가 있다. 아키텍트가 설계를 하면 마치 그것이 마치 불변의 법인것 처럼 행동하고 잘못된것을 지적하거나 의문점을 제시하면 받아들이지 않는 사람들이 있다.  그리고 프로젝트의 인프라와 기간, 인력등을 고려하지 않고 이상만을 추구해서 설계를 하는 아키텍트들도 있다. 그리고 나서 안되면 개발자를 탓한다. 이런 상황을 겪어보다 보니 위에 나온 내용을 읽으면서 절로 고개가 끄덕여 졌다. 



  마이크로서비스 아키텍처 상에서는 각각의 기능들이 서로 다른 기능들을 이용하기 위해서는 통신을 해야 한다. 그렇다 보니 서비스간 호출에 대한 정의도 해야하고 보안 또한 중요하다. 아무래도 내부 호출보다는 외부 프로토콜을 이용한 호출이다보니 보안에 취약할 수 밖에 없다. 취약하다기 보다는 더 신경을 써야 한다. 서비스에 대한 호출이 정당한지, 아니면 권한과 역할에 대한 정보를 제대로 가지고 있는지 확인해야 할 정보들이 많다. 그래서 게이트웨이를 쓰고 인증토큰을 발행하고 정보를 암호화 하는 절차들이 필요하다. 전체적인 아키텍처 그림이 위하고 항상 같을수는 없지만 기본적인 틀은 아마 비슷할 것이라고 생각이 된다. 

  나도 현재 마이크로서비스로 구성하지는 않았지만 비슷하게 서비스를 구성하면서 보안에 관련된 검증을 받았었다. 생각지도 않은 곳에서 사용자 정보가 노출이 되고 쉽게 다른 사람의 정보를 수정/삭제 할수 있다는 것을 직접 체험을 했고 그것을 보완하면서 많은 것을 배웠다. 아마도 저 그림이 눈에 들어온 것은 그것때문이었던것 같다. 




  마이크로서비스 아키텍처는 실버불릿은 아니다.

  

  항상 모든것은 지나치면 오히려 독이 된다. 마이크로서비스가 최근들어 주목을 받고 있긴 하지만 모든 곳에 다 적용할 수 있는 만능은 아니다. 오히려 모놀리스 아키텍처의 구조를 가져가는게 더 알맞은 프로젝트들도 있다. 무작정 하게 되면 오히려 독이 될 수 있다. 마이크로서비스 아키텍처를 적용하기 위해서는 이 구조가 가진 장점들을 잘 살리고 단점들을 잘 보완 할 수 있는 설계를 할 수 있어야 하고 많은 것들을 고려해야 한다. 


  책을 읽으면서 대학교 전공 서적같은 느낌이 들었다. 지금은 번역서를 읽어서 그렇지만 영문 원서였으면 아마도 예전에 대학다닐때 운영체제 전공과목을 들었을 때와 더 비슷한 느낌이 들었을것 같다. 그만큼 많은 내용이 담겨 있고 어려운 내용들이다. 단순히 한권의 책을 읽었다고 해서 마스터 될 영역은 분명 아니다. 하지만 각각의 포인트에서 생각해야 할 점들을 잘 설명해주고있다. 좀 아쉬운점은 번역서이다 보니 번역투의 표현들이 눈에 띄었다. 약간은 매끄럽지 않다고나 할가. 그리고 설명에 대한 그림들이 좀 부족한것 같다. 글로 설명하기가 어려운 내용들을 그림으로 표현해서 설명을 했을때 이해가 더 쉽듯이 책에서 설명하고 있는 내용들을 좀더 그림으로 풀어줬으면 더 좋았을 것 같다는 생각이 들었다. 



마이크로서비스 아키텍처 구축
국내도서
저자 : 샘 뉴먼(Sam Newman) / 정성권역
출판 : 한빛미디어 2017.03.01
상세보기


728x90
반응형
반응형

제닉스 온라인 쇼핑몰에서 장패드와 마우스패드를 세일한다는 소식을 듣고 구매를 했다. 

집에 있는 마우스 패드도 교체하고 싶었고 전부터 장패드도 한번 써보고 싶어서였다. 

그리고 마침 쇼핑몰에 올라온게 레알마드리드 정식 라이센스 제품이었다. 



우선 마우스 패드를 보자. 

포장이 약간 구겨지긴 했지만 그래도 매우 만족스러웠다. 현재 판매중인 5개의 마우스패드의 그림이 겉면에 있고 실제 제품이 어떤건지 알려주기 위해 동그라미가 그려져 있다. 나는 당연히 호날두 형 마우스 패드를 샀다. 레알마드리드는 당연히 호날두지.




정식 라이센스 제품답게 Official Product 라고 큼지막하게 써있다. 상단에도 있고 아래쪽에는 컬러가 입혀져서 써있다. 그리고 중간 구멍으로는 실제로 패드에 새겨져 있는 레알마드리드 로고가 살짝 보인다. 포장도 제법 신경을 많이 쓴것 같다. 


이제 오픈 해보면 아래와 같이 생겼다. 





마우스 패드에 새겨져 있는 늠름한 호날두형 모습이 보기만 해도 뿌듯하다. 색깔도 전혀 촌스럽지 않고 허접하지도 않다. 그리고 Ronaldo 란 이름고 등번호 7번 그리고 레알마드리드 앰블럼이 멋지게 새겨져 있다.






마우스를 올려놔봤다. 그러고보니 지금 쓰고있는 키보드, 마우스 전부다 제닉스 제품을 쓰고있다. 의도하지는 않았지만 제품들이 괜찮아서 구입을 하게 된것 같다. 마우스를 움직여 보니 감촉도 좋고 마우스 포인터가 갑자기 벗어나는 일도 없다. 전에 쓰던 마우스 패드는 갑자기 빛이 새나가서 마우스 포인터가 이상한곳에 나타나는 현상이 있었다. 


  


이제 장패드를 살펴보자. 장패드 케이스도 마우스 패드와 마찮가지로 상당히 신경쓴 모습이다. 포장부터 고급스러운 느낌이 든다. 그리고 위에 마우스 패드 포장처럼 중간에 구멍이 뚤려있어서 실제 제품을 만져볼 수 있다. 이 케이스에도 역시 레알마드리드 엠블럼이 새겨져 있다.




실제 장패드 모습이다. 이걸 살때 바르셀로나를 사야 하나 레알마드리드를 사야하나 고민하게 했던게 색깔 때문이었다. 너무 하얗지는 않을까 하는 걱정때문에 고민을 하긴 했지만 그래도 바르셀로나를 살수는 없기 때문에 레알마드리드를 샀다. 결과는 대 만족이었다. 너무 밝으면 때가 잘 타지 않을까 생각했었는데 의외로 때가 잘 안탈것 같은 모습을 하고 있다. 너무 밝지도 않고 어둡지도 않고 딱 적당한 색이다. 중간중간 어두운 음영이 섞여 있기 때문에 때가 타도 별로 티도 안날것 같다.



고급스럽게 새겨진 레알마드리드 앰블럼과 글짜가 정말 마음에 든다. 


키보드와 마우스를 올려놓고 찍고 싶긴 했지만 찍지는 못했고 현재 장패드는 회사에서, 마우스패드는 집에서 잘 쓰고 있다. 


구매할때 제닉스 온라인 쇼핑몰 신규 가입 포인트와 무료 배송 쿠폰을 받아서 정말 좋은 제품을 저렴하게 샀다. 


728x90
반응형

'P's Life' 카테고리의 다른 글

다시 찾은 즐거움.  (0) 2017.04.25
나도 이제 플스 유저랍니다!!!  (0) 2017.04.23
드디어 애드센스 승인을 받았다!!  (3) 2017.04.05
좋은 글쓰기란??  (3) 2017.03.20
2017년을 맞이하는 자세.?  (0) 2017.01.03

+ Recent posts