본문 바로가기
반응형

이것저것(독후감같은거)28

얼마만에 코테인지 ㅋ 크리스마스날 뭐하는건지 ㅋㅋㅋㅋ 알고리즘 수업을 이번학기에 듣길 잘한건가 ..  일단 좋은 결과를 기원하며 ㅋㅋㅋㅋ아래 문제내용이? 보이면 일단 머릿속에 떠올려야 하니까 적어본다. shortest path/distance -> BFS/다익스트라 알고리즘minimum steps/moves -> BFSmaximum/minimum value -> DP나 그리디all possible combinations -> DFS/백트래킹consecutive/sequential -> 투 포인터/슬라이딩 윈도우optimal/maximize/minimize -> DP나 그리디grid/matrix/2D array -> BFS/DFS/DPBFSqueue를 사용한다. 최단 경로 찾기에 적합하다. 레벨단위로 탐색이 필요할때 적합하다.. 2024. 12. 25.
12factors -> kubernetes https://medium.com/dtevangelist/12-factors-%EB%9E%80-b39c7ef1ed30 12-Factors 란 최근 소프트웨어를 Cloud 환경에 배포하여 서비스 형태로 제공하는 SaaS(Software As A Service)가 보편화되고 있습니다. 저희 팀에서도 작년부터 레거시 시스템을 Cloud로 전환하기 위한 컨설팅을 준비하고 있는데요, 그 과정에서… medium.com 동일한 리프리카 컨테이너를 묶는 service로 묶고, kube-proxy를 통해서 바인딩하게된다. apigateway : kubernetes service & ingress resource security : namespace 로 찾고 & pod lsolation LB : ingress route .. 2019. 8. 21.
docker all kill containers docker stop $(docker ps -a -q) $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 650399b4ec09 confluentinc/cp-enterprise-control-center:5.3.0 "/etc/confluent/dock…" 20 minutes ago Up 20 minutes 0.0.0.0:9021->9021/tcp control-center 3704dbca0550 confluentinc/ksql-examples:5.3.0 "bash -c 'echo Waiti…" 20 minutes ago Up 20 minutes ksql-datagen f8857bc3b6df confluentinc/cp-ksql-cli:5.3.0 "/bin/sh" 20 minutes ago U.. 2019. 8. 14.
brew install mongodb@3.4 MacBook-Pro:~ catherine$ brew search mongo ==> Formulae mongo-c-driver mongo-orchestration mongodb@3.0 mongodb@3.4 mongoose mongo-cxx-driver mongodb ✔ mongodb@3.2 mongodb@3.6 percona-server-mongodb ==> Casks jeromelebel-mongohub mongodb-compass-community mongodbpreferencepane nosqlbooster-for-mongodb mongodb mongodb-compass-isolated-edition mongoproc orelord-mongodb mongodb-compass mongodb-compa.. 2019. 4. 19.
맥에서 포트로 pid찾아보기... 맥에서 포트로 pid찾아보기... chui-MacBook-Pro:logs ch$ lsof -i :9090COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 78041 ch 367u IPv6 0xcfba90aee347a47 0t0 TCP localhost:websm (LISTEN)Google 78805 ch 223u IPv4 0xcfba90b00f1ec77 0t0 TCP localhost:63260->localhost:websm (CLOSE_WAIT)chui-MacBook-Pro:logs ch$chui-MacBook-Pro:logs ch$chui-MacBook-Pro:logs ch$chui-MacBook-Pro:logs ch$ kill -9 78041chui-.. 2018. 9. 12.
apache kafka kafka install on the vagrantvagrant upvagrant ssh https://kafka.apache.org/quickstarthttps://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka_2.11-1.1.0.tgz 1. downloadvagrant@single:~$ wget http://apache.mirror.cdnetworks.com/kafka/1.1.0/kafka_2.11-1.1.0.tgz .--2018-07-02 05:15:02-- http://apache.mirror.cdnetworks.com/kafka/1.1.0/kafka_2.11-1.1.0.tgzResolving apache.mirror.cdnetworks.com (.. 2018. 7. 2.
hadoop fs -put users_20180516.json ./ me$ /Users/me/Documents/workspace/hadoop-client-env/doopey/hadoop-2.6.0-cdh5.10.0/share/hadoop/mapreduce/bin/hadoop fs -put users_20180516.json ./18/05/18 15:11:51 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicablemeui-MacBook-Pro:hadoop-hive me$ /Users/me/Documents/workspace/hadoop-client-env/doopey/hadoop-2.6.0-cdh5.. 2018. 5. 18.
테스트(+걍 제일 쉬운 걍 예상되는 시나리오케이스 나열) > 코딩 > 리팩토링 #왜 테스트를 자동화?웹서버api 구현시 put > get > delete 이 과정을 거의 반복해서 잘 입력되나, 잘 꺼내오나, 잘 삭제되나.. 테스트하게 된다. 심지어 파라미터가 많은 경우에는 너무 많은 성공조건이 생긴다. ( &ids=&version=&blabla=&foo=....)이런 케이스말고 에러를 뱉어야 하는 케이스도 있다.중간에 리팩토링 하는 과정도 있다. 그럼 그때마다 위에 케이스를 다 테스트한다고 하면.. 테스트하는시간이 겁내 많이 걸릴거 같아 좀 힘들거 같다... 동일한 입력포맷에 대해 예상하는 아웃포맷에 대한 테스트를 자동화 하면, 넘나 시간을 단축시킬수 있다. 코딩 > 테스트 > 리팩토링보다는테스트(+걍 제일 쉬운 걍 예상되는 시나리오케이스 나열) > 코딩 > 리팩토링 ! 테스트코드.. 2018. 2. 13.
마이크로서비스아키텍쳐환경에서 개발하고 있다. bson 통신용패킷 몇달전인가.. 어쩌다 보니 지금 개발하고 있는 서비스의 시스템구성을 발표(?)하는 자리가 있었다.마이크로서비스아키텍쳐환경에서 개발하고 있다. 라는 챕터를 만들고 어떤 얘기를 하면 좋을까 하다restAPI, 부분적 배포 , 부분적 스케일업or 스케일아웃, 부분적 성능개선 등... 각 service는 restapi로 통신을 하는데 json 형식이겠거니.. 그러다 문뜩.. header content_type 에 bson과 msgpack으로 요청을 한 서비스레이어가 생각났다.. 그래서 .. 기록한다... json 특징은프로젝트 특성상 텍스트데이터가 많다. (게시글성 서비스를 운영하고있다..)대부분의 언어별 lib가 지원된다.xml대비 불필요한 text없어 패킷용량이 감소..json의 경우 텍스트기반이라 패킷이 .. 2018. 2. 8.
git tag -d 3.7.0 git delete local tag caui-MacBook-Pro:test4j ca$ git tag3.4.13.6.83.6.93.7.0caui-MacBook-Pro:test4j ca$ git branch develop feature/bla* mastercaui-MacBook-Pro:test4j ca$ git tag -d 3.7.0Deleted tag '3.7.0' (was a32aa3f)caui-MacBook-Pro:test4j ca$ git tag3.4.13.6.83.6.9 http://www.manikrathee.com/how-to-delete-a-tag-in-git.html 2017. 12. 8.
마이크로서비스아키텍처 설계기준 정말 마이크로서비스아키텍처를 했다고 할수있을까 ? 먼저는 여기는 api의 게이트웨이를 하는 오케스트레이어가없다. 그 흔적으로는 서비스의 특정기능의 트리거 시, 메일이나 문자를 발송는 시스템구성을 따로 떼었다가 api간의 체이닝 덩치가 커지니 그만둔것같다. ' 앞단. Ux이나 클라이언트에서 불리울 서비스기능을 기준애플리케이션 로직을 분리해 여러개의 애플리케이션으로 나눠서 서비스화하고, 분산 배치한다. 그래야 배포, 확장성, 뒷단변경에 자유로울수 있다 ' 마이크로아키텍처를 검색해보면 상품관리 주문관리 유저관리를 쪼갠걸로 예가나온다. 그래서 드는생각.. 어떻게 구성해야 트랜잭션, 네트워크비용, 유연성, 확장성 이 용이한 구성을 할수있을까? 그리고 기준을두고 나눴을때의 api간의 역할은어디까지로 두는게 좋을까?.. 2017. 1. 21.
Cping Cpong-Apache Tomcat Connector 전에 쓴 글을 누가 물어봐서.. 이제는 싸이블로그를 안함.... 이곳으로 복붙해옴~( http://cy.cyworld.com/home/27126212/post/14512351 ) CPing/CPongbackend 연결의 상태를 확인하는 목적으로 사용한다. CPing/CPong의 개념은 작은 사이즈의 test 패킷으로 커넥션에 문제가 없는지 확인 하고, 정상적인 경우에만 backend에 연결을 맺게 하는 것이다. 즉, 새로운 백엔드 커넥션을 연결한 후(connection mode: C mode), 그리고 요청받은 패킷을 백엔드에서 받기 전(prepost mode: P mode)에 test패킷을 통해 connection 연결에 문제가 없는지를 확인 하는 것이다. 당연히 연결 상태를 확인해 문제없을 경우에만 .. 2016. 9. 2.
읽기 좋은 코드가 좋은 코드다 읽기 좋은 코드가 좋은 코드다 를 읽었다.리팩토링이나 객체지향설계코드책보다 더 쉽게 다뤄져있어서 금방 읽은것 같다. 이름에 정보를 담아내자. 언제 그런 이름을 사용해야하는지 깨닫기web에서 페이지를 다운로드 하고, 파싱해야 하는 함수가있다면 getPage -> downloadPage가 더 낫다.특정한 단어를 잘 고르기상황에 적합한 단어를 쓰기send : delivery, route, dispath, announce send는 모호하고 구체적이지 않다. 용도에 맞게 구체적인 단어를 잘 선택하자루프 반복시, index 에 의미가 있고, 그 값으로 체크를 한다면, i,j 보다 구체적인 의미가 담긴 네이밍을 하자추가적인 정보를 이름에 추가하자16진수 문자열인 id이면: id -> hex_id가 더 좋고단위를 포.. 2016. 2. 1.
git push origin --delete feature/cluster_kk_server origin 에 있는 피쳐브랜치를 삭제.. ~cui-MacBook-Pro-2:rep-api-bla c$ git push origin --delete feature/cluster_kk_serverTo git@github.com:rep/rep-api-bla.git - [deleted] feature/cluster_kk_servercui-MacBook-Pro-2:rep-api-bla c$cui-MacBook-Pro-2:rep-api-bla c$cui-MacBook-Pro-2:rep-api-bla c$cui-MacBook-Pro-2:rep-api-bla c$cui-MacBook-Pro-2:rep-api-bla c$ git push origin :feature/cluster_kk_servererror: unabl.. 2016. 1. 15.
playframework in java (2.4.4) scal나 java 둘중에 선택할수 있는데, java와 ORM은 Ebean으로 사용해보려고 한다.( https://github.com/lhr0916/playframework_in_java_first ) 튜토리얼을 참고해서 프로젝트는 셋팅하고, 디펜던시 설정을 build.sbt에 한다.ORM 을 Ebean말고 하이버네이트사용할때는 build.sbt 에 디펜던시 추가mysql드라이버도 추가libraryDependencies ++= Seq( javaJdbc, cache, javaJpa, "org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final", "mysql" % "mysql-connector-java" % "5.1.18", "junit" % "junit" % .. 2015. 11. 26.
cytoscape.js : 시각화 관련된 js 트래킹 시각화 관련된 js를 트래킹 하던중 cytoscape.js를 써봤다. 튜토리얼기반으로 쓴다.메뉴얼 : http://pramttl.github.io/ 여기! 참고~http://cytoscape.github.io/cytoscape.js/#introductionJS다운로드https://github.com/cytoscape/cytoscape.js/wiki/Downloads예제http://jsbin.com/aqupun/3/edit html코드다. 2015. 11. 10.
webform 디자인을 읽고.. 사내시스템을 개발하고있는데 연말부터해서 ux를 바꿔보고 있는 중이다. 참 어려운일..ㅎ 그중 조회항목이나 설치입력폼에 입력필드가 너무 많다.. 익숙하지않은 사람이 사용할때 당연 뭘 어떻게 입력하라는건지, 내가 맞게 넣은건지 , 입력폼의 타이틀읽는게 더 시간이 걸린다고 충분히 생각할수 있겠지.. 어떻게하면 가독성 쉽고 내용전달을 충분히 할수있을까 고민하다 보게된책이다. 예를 들면 나의경우 조회입력폼필드가 8개요소로 이뤄져있다. 항목타이틀은 좌측정렬이고, 조회요소들은 3x3으로 되어있다. 죄측>우측>상향정렬순으로 사용자의 입력폼기입시간이 빠르다고한다. 그이유는 사람이 시선을 고정하는것과 관계가있다. 그리고 항목타이틀과 입력폼이 근접해있을수록 빠르게 입력을 마친다는것이다. 또한 상향정렬의 경우 다국어를 지원하.. 2015. 11. 10.
perl 쓰레드와 fork를 테스트한 스크립트 블로깅.. perl로 된 스크립트를 보던 와중.. 쓰레드 와 fork를 test 한 스크립트가 보인다. (일단 링크부터 정리 ㅋ) http://gauss.ececs.uc.edu/Courses/c694/lectures/ForksThreads/forks.html http://stackoverflow.com/questions/16258191/threading-vs-forking-with-explanation-of-what-i-want-to-do http://www.tutorialspoint.com/perl/perl_fork.htm : 펄 fork http://www.hanbit.co.kr/network/view.html?bi_id=245 : 펄 threadhttp://www.jamesattard.com/2012/08/p.. 2015. 11. 10.
rundeck 사용해보기 (14년6월) Rundeck이라는 오픈소스( http://rundeck.org/ )가 있다.원격지 서버에 command나 스크립트를 실행하는 용도로 현재 쓰고 있고. 나는 1.6버전을 사용 하고 있다. ( 얘는 나에게 학습비용 없이 스크립트 재사용할수도 있고, 운영효율화에 도움을 주고 있다. ) ( http://www.slideshare.net/asyd/rundeck 이 사람은 배포 할때 쓰나보다. ) dataSource.url: jdbc:h2:file:/data/program/rundeck/server/data/grailsdb;MVCC=true 데이터베이스는 h2를 기본으로 하고 있다. (1.5버전부터 H2가 기본 database이다.) 내가 생각하는 우선 런덱에 장점은 하나. 원격지 서버(=node)를 관리 하는 .. 2015. 11. 10.
PhantomJS 란? PhantomJS 설치. 그리고 quick-start (SCREEN CAPTURE , HEADLESS WEBSITE TESTING) phantomJS로 웹사이트 test 또는 화면캡쳐하거나 하는 품질과 관련된 일을 할수 있다.PhantomJS ([www.phantomjs.org](http://phantomjs.org)) is a headless WebKit scriptable with JavaScript or CoffeeScript. It is used by hundreds of [developers](https://github.com/ariya/phantomjs/wiki/Buzz) and dozens of [organizations](https://github.com/ariya/phantomjs/wiki/Users) for web-related development workflow.HEADLESS WEBSITE TESTINGSCRE.. 2015. 11. 10.
phantomJs include jquery file and clipRect(object) phantomJs 스크립트 안에서 jquery를 사용하기 위해 jquery를 inject 하는 방법이다. ->page.injectJs("/test/program/phantomjs/script/include/jquery.min.js"); ( API문서를 찾아봤더니, 아직 TODO다.. ㅎㅎ http://phantomjs.org/api/webpage/method/inject-js.html ) 1) inject (file) - jquery파일을 로컬에 받아와도 되고, google에 링크를 걸어도 된다. - 나는 로컬에 받았고, 이렇게 사용했다. page.injectJs("/test/program/phantomjs/script/include/jquery.min.js"); - phantom.js 스크립트 전문이다.. 2015. 11. 10.
mysql 퍼포먼스 최적화를 읽고.. mysql 퍼포먼스 최적화를 읽고.. 이 책의 기준은 mysql5.5 기준이다. 스토리지엔진으로 제공되는게 (버전 5.5) 8가지나된다ㅎㅎ innodb , myisam, mrg_myisam blackhole csv memory federated archive(단순 로그 수집에 적함) (innodb엔진만 썼는데ㅎ) innodb스토리지엔진 유일하게 트랜잭션을 지원하고 mvcc 를 제공하고 ( 여러개의 복제본을 이용해 하나의 데이터를 처리함으로써 서로의 read/write를 방해하지 않도록 하는 방식) 행단위 잠금으로 데이터 변경 작업을 수행해 연관없는 데이터를 다른 사용자가 변경할수있고 ( myIsam은 table 락 ) 인덱스와 데이터를 모두 메모리에 올린다.( myisam은 인덱스만 메모리에 올림) 그래.. 2015. 11. 10.
코딩호러의 이펙티브 프로그래밍을 읽고 이책은 스택오버플로우창립자가 쓴 책이다. 어떤 프로그래머를 뽑을 것인가에 대한 내용을 시작으로 한다. 그리고 좋은 프로그래머에게 제공되어야 하는 것들과 어떤 프로그래머를 목표로 하는가를 생각하게 하는 책인것 같다. 사용자를 염두에 두고 설계하기 -사용자 인터페이스가 애플리케이션이다. 사용자의 경험이 중요하다는것이다. -ui를 우선시 하는 소프트웨어 개발. 우리는 흔한 컴퓨터사이언스 문제를 효율적으로 해결하는 알고리즘을 구현하는 방법은 배우지만 좋은 UI를 디자인하는것은 배우지 않는다. 이말 또한 사용성을 향상시키는데 많은 노력을 해야한다는것이다. -쪽수매기기의종말. 수천개의 항목이 있다면, 쪽수매기기로 해결하지말고 검색과 필터링을 잘 써라. - 피츠의 법칙과 무한한 넓이. 맥킨토시의 풀다운메뉴가 윈도우에.. 2015. 11. 10.
RSS 2.0 spec http://cyber.law.harvard.edu/rss/rss.html RSS 2.0 버전에 샘플 파일이다. http://cyber.law.harvard.edu/rss/examples/rss2sample.xmlchannel 엘리먼트에 대한 구성은 아래와 같다. channel에 반드시 필요한element는 titiel, link. description 이다. Liftoff Newshttp://liftoff.msfc.nasa.gov/Liftoff to Space Exploration.en-usTue, 10 Jun 2003 04:00:00 GMTTue, 10 Jun 2003 09:41:01 GMThttp://blogs.law.harvard.edu/tech/rssWeblog Editor 2.0editor@e.. 2015. 11. 10.
(git flow) delete local branch : git branch -D feature/nflash 로컬브랜치를 삭제 하는 방법이다. 1) 브랜치 목록을 보고 catherineui-MacBook-Pro:Kler catherine$ git branch * develop feature/nflash master origin 2) feature/nflash로컬브랜치를 삭제catherineui-MacBook-Pro:Kler catherine$git branch -D feature/nflashDeleted branch feature/nflash (was f7c7a44). catherineui-MacBook-Pro:Kler catherine$ git branch * develop master origin 3) 다시 체크아웃 catherineui-MacBook-Pro:Kler catherine$ git checkou.. 2015. 11. 10.
git merge to feature/blabla from develop 상황 * git flow feature브랜치 작업이 길어지거나 * hotfix로 작업된 코드를 머지 하고 +feature 를 유지해야 하는 경우git checkout feature/bla ->git merge develop ->git push -u origin feature/bla(저런 경우 어떻게 올라가는지 궁금하여 테스트) 1) develop에서 feature start catherineui-MacBook-Pro-3:python_sam catherine$git checkout developSwitched to branch 'develop' Your branch is up-to-date with 'origin/develop'. catherineui-MacBook-Pro-3:python_sam cathe.. 2015. 11. 10.
git tag 삭제 + 같은 tag 명으로 다시 생성 git flow로 브랜치를 관리 하고있다. tag생성을 잘못했다.. (아직 하면 안되는데 ..) 1) 일단..삭제부터..git push --delete origin 1.0.4git tag -d 1.0.4 (t-image-pssor)caui-MacBook-Pro-3:t-image-pssor ca$git push --delete origin 1.0.4To https://github.dk.com/rtf/t-image-pssor.git- [deleted] 1.0.4(t-image-pssor)caui-MacBook-Pro-3:t-image-pssor ca$ git fetch (t-image-pssor)caui-MacBook-Pro-3:t-image-pssor ca$ git tag -l 1.0.0 1.0.1 1.0.. 2015. 11. 10.
jenkins rest-api 로 job health-check 젠킨스로 거의 모든 배치성 일들을 수행하고 있다. 젠킨스 rest-api 로 job을 모니터링하고 , health-check를 하는게 좋을것 같아서 뜨든! http://jenkins_server_name.com:port/api/json?tree=jobs[displayName,lastBuild[number,result,timestamp,id],url,inQueue,queueItem,nextBuildNumber]&exclude=hudson/job[lastBuild[result=SUCCESS]] http://jenkins_server_name.com:port//api/json?tree=jobs[lastStableBuild[number],firstBuild[number],buildable,displayName,.. 2015. 11. 10.
반응형