CyberImagination BLOG 221

CSS Naming Conventions BEM

CSS를 작성하다 보면 이름짓기에 의외로 어려움을 겪는 경우가 많습니다.여러번의 프로젝트를 수행하다 보면 본인만의 스타일로 클래스명을 짓게되는데, 협업..특히 외주업체나 프리랜서 분들과 작업을 하다보면 자신만의 스타일을 고집하기도 애매한 경우가 허다합니다. 여기, 좋은 CSS Naming Convention을 소개합니다. BEM은 크게 Block로 영역짓고, Element로 지정하며, Modifier로 상태를 표시합니다. .block {}.block__element {}.block--modifier {} 즉, __를 쓰는 경우와 --를 쓰는 경우를 분리한 것인데,__는 명사와 같은 이름을 사용합니다. (__button, __title, __menu 등)--는 동사와 같은 상태를 이름으로 사용합니다. (-..

프론트엔드 2016.08.17

부트스트랩보다 간단한걸 찾는 그대에게, spectre.

평안하신가요어느덧 세월은 흐르고 흘러 16년도도 8월입니다. 여기 적혀있는 글이 조금이나마 도움이 되었으면 좋겠습니다. css framework를 소개하고자 합니다.spectre 라고 하고, 일반적으로는 스펙터 라고 읽습니다. 불안, 유령이라는 사전적 의미를 가지고 있습니다. 스펙터의 장점과 단점을 추려본다면, (뒤이어 나올 스펙터의 테이블 class를 적용하여 장단점 테이블을 만들어 보았습니다.)

프론트엔드 2016.08.08

Event 기반 Microservices - Event Sourcing 및 CQRS

현재 IT업계에서는 기존 Monolithic 방식의 개발방식에 대한 많은 문제점을 인식하고 있는 상황입니다. 그에 따른 대안으로 Microservice Architecture나 Serverless Architecture등 다양한 방안 찾고 있지만 일반 기업에서 선뜻 아키텍처를 바꾸지는 못하는 상황입니다. 첫 번째 이유는 IT서비스 전문 기업 외에는 아직 일반기업에서 적용한 성공적인 사례가 찾아보기 힘든 점이 있고, 기업 내 자체 IT 인력이 이러한 MSA에 대한 이해도나 실제 구현 및 적용하기 까지 지식이나 경험이 부족한 상태입니다.두 번째로 이러한 부분을 해결하기 위한 솔루션 제품들이 아직 성숙되지 않은 문제도 있습니다. 하지만 불과 몇 년만 C/S 환경에서 웹 기반 아키텍처로 순식간에 변화했듯이 웹 ..

프론트엔드 2016.08.05

[JAVA]Composite 패턴과 재귀호출로 파일탐색기 만들기 - 1

[JAVA]Composite 패턴과 재귀호출로 파일탐색기 만들기 - 1 요즘 날씨가 너무 덥습니다. 밤에 잠이 오지 않을 정도인데요, 그래서 저는 요즘 밤마다 책을 보고 있습니다.(!) (책을 읽으면 잠이 잘 온다지요ㅎㅎ) 몇 권 돌려가면서 그날그날 기분에 따라 읽고 싶은 책을 읽고 있는데, 그 중 한 권이 바로 'Java 언어로 배우는 디자인 패턴 입문'입니다. 이 책은 입문용이라서 그런지 디자인 패턴 이해를 돕기위해 예제 코드가 아주 단순화되어있습니다. 그래서 꽤나 술술 읽히는 책입니다. 그 중에 'Composite 패턴'이라는 디자인 패턴을 읽다가 문득 예제 코드를 좀 더 응용시켜보고 싶어졌습니다. 예제 코드는 '컴퓨터 파일 시스템' 구조를 패턴에 적용시킨 것인데, 실제로 java.io 패키지의 F..

백엔드 2016.08.01

Git merge, rebase 이해하기

Git merge, rebase 이해하기. 지난번 포스팅에서 git workspace가 어떤 구조로 이루어져있는지 살펴보았습니다. 또, 서로 다른 branch끼리의 병합에 대해서 살짝 다루었습니다. 다른 형상관리툴들과는 달리 git은 branch를 생성할 때 파일을 복사하는 것이 아니라 파일의 스냅샷만 가지고 생성하기 때문에 자원의 부담없이 branch를 만들어 사용할 수 있습니다. 이러한 장점때문에 git으로 작업을 할 때에는 다양한 용도의 branch를 만들어 사용하는데, 이번 포스팅에서는 이러한 작업에서 필수적인 branch를 병합하는 2가지 방법의 원리와 차이에 대해서 살펴보겠습니다. Merge branch를 병합할 때 가장 많이 쓰이는 기능입니다. 사실 merge와 rebase를 구분하지 않고(..

백엔드 2016.07.29

ajax 개미지옥 callback hell !!!

javascript 에서 ajax를 통한 비동기 식으로 개발을 하다 보면 callback 함수로 인해 다들 엄청난 스트레스를 받았을것으로 예상된다. 이 callback함수로 인해 코드의 복잡성이 증가하고 가독성은 말할것도 없다. 다음과 같은 시나리오를 보자 1. /test/returnValue.jsp?value=1 을 호출 2. 리턴 값이 1이면 /test/returnValue.jsp?value=2 호출 3. 리턴 값이 2이면 /test/returnValue.jsp?value=3 호출 4. 리턴 값이 3이면 정상 alert5. 각 상황시 조건이 맞지 않으면 실패를 alert 이와 같은 형태의 시나리오는 우리가 개발을 하다 보면 종종 맞닥뜨리는 상황이다. 다음의 상황을 jQuery의 ajax를 통해 일반적..

프론트엔드 2016.07.15

Raphael로 웹에 낙서를 해봅시다. -TEXT편-

안녕하세요?DJ.VUD 입니다. 지난시간에 Raphael.js 에 대한 기본적이고 기초적인 내용에 대해서 알아보았습니다.(http://cyberx.tistory.com/85) 이번에는 TEXT 에 대하여 알아보겠습니다. TEXT 생성일단 TEXT는 크롬:개발자 도구로 살펴볼때 이러한 형태를 가지고 있습니다. 마치.. 에 을 넣어 style로 관리하는 모양새랑 비슷합니다. Raphael TEXT를 만드는 방법은 아주 간단합니다. var text = paper.text( x좌표, y좌표, '텍스트 입력'); TEXT도 다른 도형 또는 path와 마찬가지로 기본 색상은 검정색입니다.폰트명은... 크롬에서 기본만 딱 그려봤습니다. 폰트명은 Arial이고 폰트크기는 10px 입니다. (브라우저마다 폰트모양은 조금..

프론트엔드 2016.07.14

API 서비스 개요 및 Business 관점의 특징

2015년 BCS(Chartered Institute for IT)는 간부급 IT전문가 350명을 대상으로 향후 12개월의 단기 계획과 3~5년간의 중장기 계획을 조사했는데 향후 12개월 동안 대다수의 기업에서 우선순위가 높은 3개로 정보보안(60%), 클라우드 컴퓨팅(55%), 모바일 컴퓨팅(53%)이 꼽았습니다.그러나 회사가 우선으로 하는 IT동향과 경영 문제를 해결할 만한 충분한 자원이 없다고 느낀다는 IT임원이 무려 92%나 됐었고, 조사에 응한 IT임원의 절반 이상인 53%는 기존 인력 가운데 고급 IT인력과 충분한 자격을 갖춘 IT인력들이 현재와 동일한 수만큼 더 필요하다고 답했습니다. 충분한 인력 자원을 보유하고 있다고 말한 응답자는 8%에 불과했습니다.위에서 볼 수 있는 대부분의 IT 관리..

프론트엔드 2016.07.04

JAVA exception 처리하기

JAVA exception 처리하기 안녕하세요, cx 사업본부 박토끼입니다. 요즘 일을 하면서 계속 머리속에서 드는 의문이 하나 있었습니다. "예외 처리를 어떻게 해야 잘 처리하는 것일까?" 사실 Java를 처음 배울 때는 exception에 그다지 민감하지 않았습니다. 단순히 '잘못되어서 에러가 나는구나.' 정도의 생각만 했습니다. 그리고 throw 키워드나 try~catch 블럭을 사용하면서도, IDE 툴에서 빨간색 표시로 잘못되었다고 에러가 뜨고 컴파일 자체가 안되니까 해줘야된다는 생각뿐이었습니다. 그리고 일을 시작한 후에도 exception 처리가 왜 필요한지 느끼지 못했습니다. '에러가 나는 것 자체가 문제이니, 에러가 안나게 로직을 완벽히 수정하는 것이 옳다. 그러면 exception 처리는 ..

백엔드 2016.07.01

DBridge for serverless architecture

Serverless Architecture 최근 Software 업계에서는 MSA(Micro Service Architecture)가 떠오르면서 이를 구현하는 방법으로써 Serverless architecture(서버리스 아키텍처)라는 주제가 아주 핫합니다. 이미 관련 서적과 컨퍼런스도 활발하게 생겨나고 있으며, 오픈소스 프레임워크와 함께 많은 유명한 업체들이 AWS, Azure, Google cloud 등의 프레임워크 서비스를 내놓고 있고 사용자 그룹이 형성되는 등 업계의 관심이 뜨겁습니다. Serverless에 대해 아직 명확하게 정의된 개념은 없지만 Martinfowler의 블로그를 인용한다면 아래와 같이 정리될 수 있을것 같습니다. What is Serverless? Serverless was f..