2017년이 지나고 또 상반기가 지나간다. 나는 2017년 이직을 하고 굉장히 편하게 회사를 다니고 있다. 상당히 많은 것을 배웠고 개발자로서 영역이 많이 넓어지는 경험을 했다. 간단하게 2017년을 정리해보려고 한다. 이건 지극히 개인적인 글이라 혹시 보시는 분에게 도움이 될 지는 모르겠다. 있었던 일 [영역 확장] 전 직장에서는 자바 웹서비스와 프론트앤드 개발(javascript 개발, CSS 제외)을 주로 했다. 여기에서는 같은 일을 하지만 좀 더 향상된 새 버전에서 작업을 했고 docker, AWS와 같은 인프라로 영역이 넓어졌다. 또한 휴리스틱한 문제를 해결하기 위해서 낯선 알고리즘(bayesian model)들을 가지고 서비스를 만들기도 했다. 전혀 써보지 않았던 프로그래밍 언어를 가지고 작업..
2017년도 벌써 절반이 훌쩍 지났다. 올해 상반기는 나에게 중요한 변곡점이 된 시간이었다. MATHOLIC 에 입사했고, 내가 원하던 기술들을 실제로 사용했으며, 이 시대의 화두인 머신러닝에 대해서도 맛을 보았다. 또한 개발자로서 가까운 지인의 멘토가 되었는데 나의 일에 대해서 깊게 생각해볼 수 있는 계기가 되었다. 그 밖에도 많은 일들에 대해서 이번에 회고를 해보고자 한다. 직장 매쓰홀릭 입사 너무 운이 좋게도 열정 넘치고 실력있는 동료들과 함께 일할수 있게 되었다. 불편한 이야기이지만, 이전 직장과 비교하지 않을 수 없다. 1. 개발 몰입도 이전 직장과 비교하여 개발 외적인 일들(회의, 메일 작성하기, 기타 불필요 프로세스 등)이 없다. 개발 이외에 하는 일은 보드게임 정도. 그래서 개발 몰입도가 ..
프로젝트 JAR에서 WAR로 설정 변경 우선 프로젝트 설정을 jar에서 war로 바꾼다. pom.xml에서 packaging을 war로 바꾸고 tomcat을 provided로 바꾼다. war ... org.springframework.boot spring-boot-starter-tomcat provided ... ... 그리고 Application 클래스도 수정한다. 서블릿을 초기화하는 코드를 추가해야한다. SpringBootServletInitializer을 상속받고 configure 메서드를 아래처럼 재정의한다. @EnableWebMvc @SpringBootApplication public class Application extends SpringBootServletInitializer { @Over..
UWP로 윈도우 앱을 하나 만드는데 장애물을 만났다. httpClient를 이용해 multipart로 파일과 관련한 정보를 json으로 전송해야했다. 기존에 동료가 만든 웹에서 멀티파트 업로드를 좀 참고해서 해보려고 했는데 그것만 보고는 감이 안잡혔다. 그래서 우선 multipart가 무엇인지 좀 찾아보았다. multipart/* 는 멀티파트 MIME 타입은 다른 객체들을 포함하는 복합 객체들이다 참고 : http://eminentstar.tistory.com/47 즉 다른 타입의 객체들을 구분자로 구분하고 그걸 복합 객체로 만들어서 요청을 보내는 것이다. 이정도 이해하고, 열심히 c# 예제 혹은 uwp 예제를 찾았는데 찾기가 어려웠다. 공식 문서도 어렵고. 그러다가 이걸 찾았다. http://kiewi..
서론 현재 스프링 부트로 서비스를 개발하고 있다. 그래서 한빛 리더스 마지막 미션 책으로 이 책을 만나게 되어서 너무 반가웠다. 워크북이기 때문에 실용적인 팁들을 주고 있는 책이다. 스프링웹 개발에 대한 경험이 있으신 분이 스프링 부트로 입문하려고 할 때 굉장히 유용한 책이 될 것 같다.스프링을 자체를 모르신다면 최범균님의 스프링4 프로그래밍 입문이라는 책을 추천한다. 두껍고 부담스러운 여타 스프링 책들 보다 훨씬 쉽게 입문할 수 있게 도움을 줄 것이다. 책 간단한 소개 책은 워크북 답게 스프링 부트와 관련 기술들에 대해서 실용적인 방법을 알려준다. 우선은 한번 죽 읽어보는 것을 추천하고 나중에 써먹어야 할 때가 떠오르면 한번 찾아서 자세히 보면 좋을 것 같다.그리고 스프링 부트의 주 개념인 자동 구성 ..
회사에서 작게 도커를 관리하는데 cAdvisor가 도움이 되었다. 남들도 쉽게 복붙해서 쓰시길. docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=28080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
캔버스에서 toDataURL()이라는 함수를 실행하면 data url이 나온다. base 64로 인코딩된 이미지라고 한다. (https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL) 이 데이터 URL을 서버로 업로드해서 이미지 파일로 저장하는 방법에 대해서 아주 간단하게 정리해보려고 한다. 이거 하면서 쓸데없이 뻘짓을 많이 했는데 다른 분들이 바로 성공하시길. data:image/png;base64,을 제거하고 디코딩 import java.util.Base64; public class Base64Utils { private static final String BASE_64_PREFIX = "data:image/png;bas..
서론 언젠가부터 페이스북에서 신경망이니 텐서플로우니 CNN이니 많은 글들이 올라왔다. 우리 동네 개발자 그룹에서도 관련 스터디를 진행했다. 나도 올해 하반기부터는 이쪽 공부를 해야겠다고 마음먹었는데 운 좋게 이책을 빨리 만날 수 있었다. 그리고 나같은 입문자가 보기에 너무도 좋은 책이었다! Liked 수포자도 이해시키는(?) 책 이 책의 표지에는 수포자도 이해하는 신경망 동작 원리와 딥러닝 기초라고 나와 있다. 나의 케이스에 맞춰서 이 책의 난이도를 설명하자면 고등학교 다닐때 수리 가형에 60~70점 맞았고 편입공부하면서 수학 공부를 했었던 나에게도 쉽지는 않았다. 수식의 컨셉은 대략 이해가 갔지만 미분하는 과정이 쉽게 이해가 가지 않았다. 그러나 이 책의 부록을 보고 꾸준히 읽었더니 이해가 가기 시작했..
SPA와 SPA 라우팅 원리 이번 포스팅에서 웹서비스가 Single Page Application(이하 SPA)까지 발전하게 된 경위와 SPA의 라우팅의 원리에 대해서 알아보려고 합니다. 스펙을 일일이 참고해서 작성하지 못하고 개인적인 경험과 지식 위주로 정리했기 때문에 부족한 부분이 있을 수 있습니다. 피드백 주세요! 목차 기존의 웹서비스 Ajax로 부분만 새로 그리는 웹서비스 Single Page Application SPA의 라우팅 원리 정리 실습 serve를 설치한다. npm install -g serve (https://www.npmjs.com/package/serve) git clone https://github.com/voyagerwoo/simple-spa 기존 웹서비스 예제 서버 실행 : ..
서론 작년 겨울 이직 하기 전 회사에서 Micro Service Architecture(MSA)는 핫이슈였다. 도메인 로직이 뭉쳐진 신(God)같은 프로젝트가 있었고 그걸 MSA로 쪼개려고 방법을 강구하고 있었다. 나도 쪼갠다는 것에는 당연히 동의를 했지만, 속으로 곰곰히 생각해보니 진짜 너무나도 어려웠다. DB를 중심으로 의존이 거미줄처럼 복잡했기 때문이다. 과연 그걸 쪼개는 것이 가능하긴 한건지 의문이었다. 나는 이직을 했고 이제는 새로운 코드에서 이 문제를 고민하고 있다. 어디든 정도의 차이는 (크게) 있지만 서비스가 모노리틱 하게 성장하기 때문이다. 그러던 중에 이 책을 읽게 되었고 MSA의 허와 실을 확인할 수 있었다. 좀 더 나아가서 최근에 관심을 가지고 있는 화두들(DDD, Rx 등) 간의 ..
나는 자바 백앤드를 주로 하던 만 3년차 개발자로, 이직을 하게 되면서 CSS를 다룰 일이 많아졌다. 나에게 CSS는 항상 궁금하던 영역이었지만 이러 저런 핑계로 지식과 경험이 거의 없는 상태였다. 그때 bsidesoft의 맹기완님이 HTML/CSS 관련한 스터디를 하신다는 소식을 듣게 되었다. 종로에서 한다고 해서 잠깐 고민했지만 좋은 경험이 될 것 같아서 바로 신청했다!(https://www.facebook.com/groups/dgding/) 스터디 교재 http://book.naver.com/bookdb/book_detail.nhn?bid=9885179 스터디 교재는 모던 웹사이트 디자인의 정석이라는 책이다. 레이아웃을 반응형으로 작성하는 것부터 시작해서 웹사이트를 반응형으로 만드는 법을 자세하게 ..
신림 프로그래머에서 처음으로 나서서 스터디를 진행했다. 쑥스럽지만 이 경험을 공유해보고자 한다. 이 글을 보고 많은 분들이 동네에서 스터디를 진행했으면 좋겠다. 주제 선정 최범균님의 객체지향 책은 입사한지 얼마 되지않아서 팀원들과 스터디 했던 적이 있다. 그 당시에 읽기는 했지만 어려운 부분이 많아서 나중에 꼭 다시 읽어야지라고 생각했었다. 그 이후에 클린 코드라는 책을 읽고 TDDBE도 읽고 해드퍼스트 디자인패턴 책을 읽으면서 디자인 즉 설계가 굉장히 중요하다는 것을 새삼 깨달았다. 개인적으로 소프트웨어 디자인 관련해서 다시 한번 전체적으로 훑어보고 싶은 마음이 있었고, 그 책으로 범균님의 객체지향 책이 적당하다고 생각했다. 왜냐하면 두껍지 않지만 객체지향 설계의 전체적인 부분을 짚어 주기 때문이었다...
수정하기 너무나 힘든 코드를 작성하거나 유지보수하는 개발자들의 필독서 서론 : 객체지향 몰라도 코드를 작성할 수 있다 요구사항은 변한다. 그 요구사항을 반영하는 것이 사실 크게 어렵지 않은 순간이 많다. 그냥 대충 DB에 컬럼 추가하고 쿼리 추가하고 맵(Map)에다 넣어서 if else 블록 추가하면 된다. 예전에 비슷한 수정사항이 있었으면 그거 복붙하면 된다. 그런데 계속 그렇게 작업하다가 보면 언젠가 엄청나게 긴 메서드와 객체를 만나게 된다. 쿼리도 엄청 복잡해진다. 뭐 하나 수정하기가 너무 여러운 코드가 된다.그런 코드는 개발자의 적이다. 읽는데 너무 힘들다. 경험상 그런 코드는 재작성하게 되는데 숨겨진 로직을 반영하지 못해서 버그가 생길 때도 많다. (그것 때문에 또 스트레스...) 지나친 비약일..
“이 책은 리눅스를 처음 접하거나, 또 접해 봤더라도 위의 사례와 같은 경험이 있는 독자가 리눅스 관리자 및 네트워크 서버 관리자의 역할을 할 수 있도록 훈련하는 데 목적을 둔 교재이다.” 서론, 넘어가셔도 좋습니다 내가 처음 만난 리눅스는 ubuntu 14.04 LTS 였다. 편입하고 첫 학기에서 선배들은 C언어를 공부할 때, visual studio를 거의 죄악시 했다. 컴퓨터를 전공하는 학생이라면 당연히 vi로 c 코드를 작성하고 gcc로 컴파일 해야 한다고 했다. 그 때 60만원 짜리 노트북에다가 ubuntu를 몇번이나 지웠다 깔았다. 카페에 공부하러 가면 터미널이 간지라며, ubuntu에 터미널을 열어놓고 공부하기도 했다. 그러나 나는 ubuntu를 잘 몰랐다. 대충 c 코드 작성하고 gcc 컴..
WebdriverIO test 5 + 5 분 완성 참고 http://webdriver.io/ https://www.youtube.com/watch?v=vPes7NKeYno&t=2s https://www.youtube.com/watch?v=XGrHJ4rKV5w&t=200s Selenium Standalone Test 해보기 1 - 테스트할 폴더 생성 및 초기화 mkdir webdriverio-test cd webdriverio-test npm init -y 2 - selenium-standalone 설치 및 실행 sudo npm install -g selenium-standalone sudo selenium-standalone install sudo selenium-standalone start 맥에서는 ..
Selenium Webdriver 5분 완성 참고 : https://www.youtube.com/watch?v=khwV5IWng-I node/npm 설치 필수! 1 - 테스트할 폴더 만들기 mkdir selenium-webdriver-test cd selenium-webdriver-test 2 - selenium-webdriver 설치 npm install selenium-webdriver 3 - WebDriver for Chrome 다운로드해서 현재 폴더 (selenium-webdriver-test)로 이동 https://sites.google.com/a/chromium.org/chromedriver/getting-started 4 - 테스트 코드 작성 touch test.js var webdriver..
CHAP1 Graphics System 시각적인 시스템 - 컴퓨터는 점으로 그래픽을 표현한다. 점으로서의 속성 - x, y, width, height, color 등 1. Fixed number 가장 기본적인 그래픽 표현 방법 업데이트가 정말 힘들다. 2. Abstract Calculator context가 맞는 그래픽을 공유하고 싶다. screen size, chrome size, hierarchy calculator 를 기반으로 %, top, block, inline, float => 추상화된 그래픽 표현 3. Components System html tag - textarea, input, button, img, div 4. Framework Rendering System 코드나 설계도 같은 눈에 ..
나에게 2016년은 개인적으로도 큰 사건이 많은 해이다. 우선 나에게 있었던 이벤트들을 나열해보고 4L 회고로 정리해보고자 한다. 올해 정리 스터디 스터디 주제 스터디 방법 비고 Clean Code 임의의 발표자가 책의 내용을 설명하고 서로 이야기 나누기 11번가 스파크 임의의 발표자가 스터디 전에 책의 코드를 쳐보고 이야기 나누기 신림프로그래머 TDD By Example 임의의 발표자가 스터디 전에 책의 코드를 쳐보고 이야기 나누기 11번가 Node js 임의의 발표자가 스터디 전에 책의 코드를 쳐보고 이야기 나누기 11번가 프론트 앤드 스터디 각자 발표주제를 정하고 발표하기 신림프로그래머 교육 패스트 캠퍼스 자바 웹 프로그래밍 강의 - 박재성(자바지기) 읽은 책 Clean Code - 로버트 C. 마..
1년도 전에 산 책인데 이제 여유가 읽게 되었다. 내 글을 다 읽지 않을 분들을 위해서 먼저 결론을 적어본다. 객체지향의 패러다임을 가진 언어로 프로그래밍 하시는 모든 분들이 읽었어 한다. 특히, 객체지향적으로 사고하기를 어려워 하시는 분들이 읽어보시면 큰 도움이 될 것이다. 객체지향을 공부하고자 하는 학생이 꼭 읽어야 한다. 위키피디아, 나무위키를 보지 말고 꼭 이 책을 읽어야 한다. "~할 것 같다"라고 하지 않고 단정지은 이유는 그 만큰 이 책을 읽고 큰 확신을 얻었기 때문이다. 이 책을 읽고 느끼고 배운 바를 키워드에 따라서 정리해보고자 한다. 사실과 오해 자바 혹은 C++를 배우게 된다면 객체지향이라는 단어를 배우게 된다. 그러나 그것은 객체를 표현하는 문법을 배우기 전에 잠깐 배우는 것일 뿐이..
이 책은 재포스 (www.zappos.com)라는 온라인 신발 쇼핑몰의 CEO, 토니 셰이가 쓴 책이다. 책에서는 토니가 어떻게 사업가로서 성장했고, 왜 행복한 기업문화를 만들었고, 그 결과 큰 사업적인 성공을 거두었다는 내용을 다루고 있다. 마지막에 토니는 자신의 행복학에 대해서도 적어두었다.정말로 이 책은 “상사에게 권하고 싶은 책”이다. 이 책의 주요 요지는 “부하를 행복하게 해야 회사가 성장한다”이기 때문이다. 정말 다행인 것은 나의 상사가 되실 분께서 이 책을 추천해주셨다는 것이다. 아직 출근도 안 했는데 괜히 뿌듯하다. 행복을 문화로 만들다 토니 셰이의 개인사가 굉장히 재미있다. 어릴 적 부터 돈을 벌고 싶어서 작은 사업들을 시작했다. 실패한 것도 많았지만, 학생에게는 짭짤한 소득을 벌었던 사..
- Total
- Today
- Yesterday
- springboot
- 실수노트
- ES6
- sanur
- 개발자
- 발리
- spring boot
- spring
- 웹을 지탱하는 기술
- Clean code
- 도커
- 회고
- javascript
- 한달살기
- container
- 사누르
- rest
- AWSKRUG
- S68
- Bali
- 컨테이너
- Docker
- hands-on
- 독후감
- 객체지향
- AWS
- html
- 웹
- ecma6
- ChatGPT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |