우아한 테크코스 레벨3와 레벨4의 커리큘럼을 바꾸면서, 크루들에게 프로젝트 준비를 위한 시간이 주어졌다. 기획서를 작성하고 프로젝트를 준비하는데에 앞서 어떤 메시지를 주면 좋을지 고민이 시작되었다. 그러다 문득 User Story를 작성해보는 것도 좋겠다는 생각이 들어 강의와 실습 컨텐츠를 만들어보았다. 이 자료는 인간중심 UX 디자인과 사용자를 생각하게 하지마를 참고하여 만들었다. User Story는 사용자 상을 제작하고, 사용자의 시나리오를 작성한 후 요구사항으로 도출된다. 아래에서는 http://edu.nextstep.camp/ 을 가상으로 작성해보았다. 요구사항을 도출하기까지 사용되는 In-Depth Interview와 사용성을 위해 진행하는 Usability Test를 비교해 보는 것도 좋을거..
0. 퇴근하는 길에..동료가 맵리듀스를 공부한다는 이야기를 듣고 장난기가 발동했다. 왜 맵리듀스냐, Spark는 어떤가, 하둡이 뭐냐, 그런데 왜 분산이어야 하지, RDBMS로는 안되나, Postgres는 어떤가.. 계속 꼬리 물기 질문을 주고 받다가, 문득 정리해두면 좋을 것 같다는 생각이 들었다. 1. Spark란 [Docs]1) Spark는 고속 범용 분산 컴퓨팅 플랫폼이다.2) 사용자가 클러스터를 다루고 있다는 사실을 인지할 필요가 없도록 설계된, 컬렉션 기반의 API를 제공한다.3) Spark는 MapReduce와 유사한 일괄처리 기능, 실시간 데이터 처리기능, SQL과 유사한 정형 데이터 처리 기능, 그래프 알고리즘, 머신러닝 알고리즘을 모두 단일 프레임워크로 통합했다. [관련 글] 2. Wh..
production branch : masterintegration branch : developfeature branch hotfix branch# production에서 나오는 branch 는 hotfix만# 나머지는 모두 integration branch에서 나옴#확인#git log --oneline --decorate#git reflog#git branch -agit initgit config --global alias.st statusgit config --global alias.co checkoutgit co -b developgit co -b feature/add-testgit add .git commit -m ""# commit message 첫줄은 Title Line# 그 다음줄부터 De..
개발 환경 : atom + github (+ git desktop)atom 사용기 : 자동 완성 단축키 [tab] ! + [tab] li*3 + [tab]사용 패키지1. minimap 2. pigments 3. color-picker 4. prettier-atom 5. emmet 6. gitplus 7. autoclose-htmltheme 적용 (glacier dark) - prettier-atom 세팅 (format on save)HTML semantic 태그 : 의미가 있는 태그non-semantic (, ) : 텍스트를 위한 컨테이너id : 고유 / class : 중복되도 됨 1234567891011121314/// 템플릿 Title Colored by Color ScriptercsCSS | css..
개발 중에 디버깅을 위해 System.out.println을 사용할 경우, 매번 I/O 작업이 발생하여 성능을 떨어뜨린다. 이 경우, 개발 중 추가한 디버깅 메시지를 실 서비스하는 시점에서 제거하거나 주석처리를 해야 한다. ㅡㅡ. 이런 부분들은 Logging 라이브러리를 사용함으로써 해소할 수 있다. 대표적인 Logging 라이브러리로 SLF4J 인터페이스가 있으며, 구현체로는 log4j와 logback이 존재한다. (logback을 사용해야 하는 이유) 1. pom.xml에 dependency 추가12345 ch.qos.logback logback-classic 1.2.3 cs 2. src/main/resources/logback.xml 추가123456789101112131415161718 %d{HH:..
개발 공부를 시작하고 자주 접하고 그냥 지나친 개념 중에 하나이다. 면접 질문으로도 자주 나온다고 하고, 실제로 채용공고 필요 역량에도 REST 등 인터넷 기반 프로토콜/ 기술에 대한 이해를 요구하고 있는 기업도 다수 있다. REST하다는 것은 무엇일까? REST(REpresentational State Transfer) '대표적인 상태 전달' 흠.. 무슨 말인지 와닿지 않는다. REST란, "웹에 존재하는 모든 자원(이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용"하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미한다고 한다.따라서 Restful API는 REST 특징을 지키면서 API를 제공하는 것을 의미한다. (일종의 Coding Convention이랄까. 설계원칙..
자바 입문서 1권 혹은 학원 기초과정을 마치고 나서 읽으면 좋을 책이다. 객체지향 개념을 잡는데에 있어 ‘객체지향의 사실과 오해’를 많이 추천받곤 했는데,이 책과 비교한 글을 읽고 우선 이 책을 먼저 접하게 되었다. “왜 이렇게 객체가 협력을 하는지 대해서 설명하기 보다 조금씩 추상화하고 코드를 정리하면서 객체의 협력을 만들어 내는 느낌이다. 처음부터 설계를 생각해내는 것과 리팩토링의 차이랄까.” [관련 블로그] 이 책의 내용을 살펴보면,1장 객체 지향에선 객체지향언어로 프로그래밍을 하면서 느끼고 접했을 개념들을, 2장 설계원칙 / DI와 서비스 로케이터는 이제부터 내가 개발하면서 지켜야할 설계 원칙들을, 그리고 마지막으로 3장 주요 디자인 패턴은 앞으로 설계하게 될 패턴들 중 자주 사용되는 패턴들을 맛..
[2017/09/09 추가]포스팅 후에 피드백을 받았습니다. 원래 글은 IBM 및 다른 블로그, 책 등을 참조해서 작성했었는데, 애초에 IBM 블로그가 오류가 있다고 하네요. 인터넷 상에 IBM 블로그를 기초로 작성된 글들이 많은데요, 밑에 원글도 그대로 두니 비교 참조하시길 바랍니다. async : 이벤트 핸들러 (callback)에 의해 처리 (callback 함수가 호출되기까지 다른 작업 가능)sync : 이벤트를 자신이 직접 처리(확인의 주체가 유저 프로세스이며, 다 될때까지 기다리거나 스스로 확인)block : 완료까지 대기(리턴되기 전까지 멈춤)non-block : 미완료라도 즉시 리턴 간단히 까페에서 커피를 주문하는 것을 예로 들어보면,1. 커피를 타달라는 요청이 왔다. 2-1. 이 때 커피..
다른 사람들의 Github를 돌아다니다 보면 빌드관련 버튼을 볼 수 있다. 아직 지속적 통합, 이런 개념은 와닿지 않고, 그냥 내 git에도 버튼을 추가하고 싶었다.추후에 스테이징 서버에 배포하는 등 구조 개선이 이루어지면 관련 내용을 추가해야겠다. Travis CIGithub 저장소에 Push가 되었을 때, CI (continuous integration) 서버가 빌드테스트 후 결과를 리포팅해주는 서비스이다. 1. travis사이트에서 자신의 저장소(github)와 연동2. travis 사이트에서 Web Hook 설정3. github 저장소의 settings에서 Travis CI 적용 확인 yaml 파일 생성 1. 최상위 경로에 .travis.yml 파일을 생성해준다 language: java befo..
(17/10/20 honux의 특강 후 추가 내용) - git을 제대로 이해하기 위해서는 참조에 대한 개념이 필요하다. git에는 객체와 참조가 있으며, commit만이 객체이다.(나머지는 모두 참조일뿐)자식은 부모를 찾아갈 수 있는 이유는 부모 링크를 가지고 있기 때문이다.git commit하면 HEAD(현재 branch, 즉 가장 마지막 commit을 참조)에서 commit 생성된다. branch 는 객체의 참조를 의미할 뿐이다. (commit의 이름이 너무 어렵기 때문에 branch를 사용하는 것이라고 봐도 될듯)1. commit하면 commit 생성2. HEAD 갱신3. HEAD가 가르키는 branch가 있을 x`x경우 branch 갱신 - git branch -f jake C5 -> (강제로 브..