느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
article thumbnail
라즈베리파이에 docker로 젠킨스 설치하기
IT/Jenkins 2021. 4. 24. 19:58

최근 도커에 대해 배우면서, 회사에서도 로컬 테스트 환경을 구축하는등 외워야 하는 명령어에 비해 많은 재미를 보고있다. 이참에 집에 있는 라즈베리파이 하나가 놀고 있는데, 여기다가 Jenkins를 Docker로 설치하고자 하였다. https://hub.docker.com/r/jenkins/jenkins $ docker run -p 8080:8080 -p 50000:50000 -v /home/ubuntu:/var/jenkins_home jenkins/jenkins:lts 이 명령어를 실행하는데, 라즈베리 파이에서 설치시 다음과 같은 에러가 발생하였다. ㅠ WARNING: The requested image's platform (linux/amd64) does not match the detected hos..

article thumbnail
윈도우즈 터미널
IT/Windows 2021. 4. 22. 07:59

그냥 기존에 cmd를 사용하고 있다가 Windows store에 Windows Terminal이라는게 있다는 것을 알게 되었다. 한 창에서 마치 브라우저처럼 여러개의 터미널을 띄울 수 있고 창도 이쁘다는 것이 장점으로 보인다. 또한 이 창에서 CMD, Power Shell 등을 띄울수 있어서 좋은 것 같다. 설치방법은 Microsoft Store를 킨 다음에 Windows Terminal을 설치하면 된다.

Babel 사용하기
IT/VSCode 2021. 1. 9. 11:45

뭔가 오랜만에 자바스크립트를 공부하려니 많이 바뀐듯 하다. 2014년도엔(라떼는) 이렇지 않았는데,,, 다시 2020년부터 개발자로 돌아오게 되니 스프링도 스프링 부트로 개발이 주류를 이룬듯 하고,, 자바스크립트 문법도 많이 바뀌었다. 그중에서 babel이란 놈이 많이 쓰이는것 같은데 간단한 사용법을 알아본다. babel : 자바스크립트 컴파일러 최신 버전의 자바스크립트로 개발을 하고 이걸 배포할때 예전 방식의 자바스크립트 파일로 변환해서 배포하기 위해 사용. babel을 사용하기 위해서는 nodejs를 설치하여야 한다. nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs...

네티에서 제공하는 웹소켓관련 기능을 이용한 웹 채팅 구현
IT/Netty 2020. 12. 5. 22:33

책에 있는 네티 예제를 그대로 사용하는데, 계속해서 버그가 나는 현상이 일어났다.. 확인해 보니 내가 윈도우를 사용하는데, home 디렉터리가 내 이름인 "주현태"로 되어있어서, 한글을 제대로 처리하지 못해 파일 경로상에 문제가 생기었다. 그외에도 문제가 산재해있었는데 그에대한 해결을 하고 github에 올린다. 예전부터 웹상에서 게임을 만들거나 채팅을 만드는 것에 대해 궁금했었는데, 아파치 주키퍼에 대한 이해도를 높일수 있을까 하고 공부한 네티에서 구현방법(?)을 익혀간다. 일단, 일반 http 연결이 connection less 한데에 비해 webSocket은 단일 tcp연결을 이용하여 전송 및 응답을 받는다. 그로인해 연결이 끊이지 않고 브라우저와 즉각적인 데이터 교환이 이루어질 수 있는 것이다. ..

네티 단위테스트를 위한 EmbeddedChannel
IT/Netty 2020. 12. 3. 22:06

네티의 경우 비동기 네트워크 프레임워크이므로, 이를 테스트 하기 위해선 Channel간 연결을 하여 테스트를 해야할 것이다. 그런데, 이러한 채널 연결 없이 embedded로 channel이 연결된 것처럼 사용할 수 있어 단위테스트에 유용한 클래스가 있는데, 이게 EmbeddedChannel이다. 이에대한 설명을 이 포스트에서 주저리 대는 것은 시간낭비로 사료되어 책에서 받아적고 테스트한 git주소를 여기다 적어놓겠다. github.com/jabel123/netty-study/tree/master jabel123/netty-study :octocat: netty공부중. Contribute to jabel123/netty-study development by creating an account on Git..

article thumbnail
네티의 전송
IT/Netty 2020. 11. 29. 20:32

네트워크를 통해 전송되는 데이터는 모두 동일한 형식(바이트)이다. 바이트가 전송되는 구체적인 방법은 데이터 전송의 기본 메커니즘을 추상화하도록 도와주는 개념인 네트워크 전송에 의해 좌우된다. 사용자는 이러한 세부 사항에 신경 쓸 필요가 없고, 바이트를 안정적으로 전송 및 수신하는 방법만 알면 된다. 예제에 나온 기존 Socket 및 Selector를 이용한 응답 서버를 만드는 예제를 따라쳤었다. github.com/jabel123/netty-study/tree/master jabel123/netty-study :octocat: netty공부중. Contribute to jabel123/netty-study development by creating an account on GitHub. github.co..

article thumbnail
네티 컴포넌트
IT/Netty 2020. 11. 25. 15:33

솔직히, 3Chapter 밖에 공부를 하지 않았지만, 이번챕터에서 가장 넓은 Insight(통찰력)을 얻은듯 하다. 네티는 우리가 기술과 아키텍처라고 광범위하게 이야기하는 두 관심 영역의 문제를 모두 해결한다. 자바 NIO 기반의 비동기식 이벤트 기반 구현을 이용해 고부하 조건에서도 애플리케이션 성능과 확장성을 보장한다. 네티는 애플리케이션 논리를 네트워크 레이어로부터 분리하는 다양한 설계 패턴을 활용해 코드의 테스트 용이성, 모듈성, 재사용성을 극대화해 개발을 간소화 한다. 1. Channel, EventLoop, ChannelFuture Channel : 소켓 (왜 굳이 소켓을 Channel로 한번 감싼걸까..? 사용하기 편하게 하기 위해서인가.. 공부를 지속하다보면 알게되겠지..) EventLoop..

article thumbnail
Netty로 echo서버 만들기
IT/Netty 2020. 11. 23. 09:39

이번에 공부한 챕터에서는 Netty로 Echo서버를 만드는 예제를 실습하였다. 예제의 경우 메이븐 프로젝트로 다중모듈프로젝틀르 구현하였지만, 나는 gradle로 프로젝트를 구현하였다. 딱히, 블로그에 정리해서 올릴 만한 챕터는 아니었지만, 틈틈이 블로그에 올리는 습관을 들이지 않으니 요즘들어 도통 이런 정리글을 쓰지 않는듯 하여 이러한 뻘글(?) 이라도 계속 업로드 하고자 한다. 예제 애플리케이션의 기능 클라이언트가 메시지를 전송하면 서버가 이 메시지를 반향 출력하는 아주 간단한 예제이지만, 다음 두 가지 이유로 아주 중요한 연습 과정이다. 개발 툴과 환경을 설정하고 확인하는 시험대를 마련할 수 있다. 네티의 핵심 요소인 ChannelHandler를 이용해 애플리케이션의 논리를 구축하는 과정을 체험할 수..

Spring 공부중,, hateoas가 1.0.2 가 되면서 바뀐부분
IT/Spring Boot 2020. 10. 21. 21:52

현재 Spring In Action 5판 Rest API를 공부중인데, HATEOAS(Hyper Media As The Engine Of Application State) 부분을 공부하고 있다. HATEOAS란, API로 부터 반환되는 리소스에 해당 리소스와 관련된 하이퍼 링크들이 포함되는 것이다. 따라서 클라이언트가 최소한의 API URL만 알면 반환되는 리소스와 관련하여 처리 가능한 다른 API URL들을 알아내어 사용할 수 있는것이다. 그런데, 책에 나온대로 실습을 진행중, 클래스가 나오지 않는 부분이 있다. 살펴보니 Hateoas의 버전이 업그레이드 되면서, 클래스명이 아래와 같이 바뀌었다고 하니 숙지하도록 하자. 아래의 것 외에도 많은데 대표적으로 변한게 아래와 같다고한다. 더 자세한 사항은 다..

MyBatis 1:N select <collection> 에러
IT/Spring Boot 2020. 10. 19. 16:24

위와같이 하면 다음의 에러가 뜬다. The content of element type "resultMap" must match "(constructor?,id*,result*,association*,collection*,discriminator?)". 그런데,, 아래와 같이하면 에러가 뜨지 않는다.. collection태그는 가장 나중에 붙이나보다. ​