본문 바로가기
반응형

전체글509

나만의 CLI 만들기! 나만의 CLI (Command Line Interface) 만들기 최근 들어 반복적인 작업이 생기면 이걸 스크립트로 어떻게 자동화 할 수 있을까 고민하게 되었습니다. 자동화 스크립트는 쉘스크립트나 파이썬이 대표적으로 떠오르지만, 웹개발을 주로 한 덕분에 자바스크립트에 더 친숙하여 보통은 nodejs가 더 손에 맞는것 같습니다. 이번 시간은 저처럼 자바스크립트만 아는 개발자 분들에게 nodejs를 이용하여 나만의 CLI를 만들어 귀찮은 일들은 전부 스크립트에 맡기는 이야기를 진행할 예정입니다. 모든 코드는 Github에 있으니 전체 코드를 보고싶으시면 참고하시면 될것 같습니다. (공부한 내용을 정리하는 Github와 세미나&책 후기를 정리하는 Github 를 star 하시면 실시간으로 feed를 받을 수 .. 2017. 1. 18.
객체지향 좀 더 이해하기 - 블랙잭 게임 구현 (6) 코드리뷰 이 프로젝트를 OKKY에 올리고 나서 OKKY의 연예인이신 fender님의 리뷰을 받을 수 있었습니다. 개인적으로는 블로그에 글을 올리고나서 OKKY에 항상 바로 올리는 이유가 이런 선배님들의 피드백때문입니다. 바로 리뷰에 대한 수정을 진행하려고 했으나, 이전부터 작업하던 Spring AOP 정리를 마무리하는게 먼저라 시작이 늦었습니다. 다행히 이번주 평일전체를 연차로 쉴수 있게되어 AOP 내용도 정리하고, 이제라도 리뷰 수정을 진행할 수 있게 되었습니다. fender님의 리뷰에서 나온 수정사항들은 아래와 같습니다. Card의 패턴과 끗수를 enum으로 자연스러운 네이밍 isReceiveCard, receiveCardAllPlayers 등은 정상적인 문법은 아님 list 대신 stack을 사용 .. 2016. 12. 10.
AOP 정리 (4) 사용법 확장 먼저 아직 AOP가 적용되지 않은 UserService를 진행해보겠습니다. Perpormance.java @Around("execution(* com.blogcode.board.BoardService.getBoards(..)) || execution(* com.blogcode.user.UserService.getUsers(..))") 포인트컷 표현식에 OR 연산자인 ||를 이용하여 UserService를 추가시켰습니다. 이로 인해 알 수 있는 것은 포인트컷 표현식에는 AND, OR, NOT와 같은 관계연산자를 이용할 수 있다는 것입니다. 여기서 만약 표현식이 더 추가가 되면 어떻게 될까요? 저 긴 표현식이 하나씩 추가 될때마다 가독성에 큰 무리가 있습니다. 더불어서 해당 표현식을 재사용하고 .. 2016. 12. 8.
AOP 정리 (3) AOP란? Spring의 핵심 개념중 하나인 DI가 애플리케이션 모듈들 간의 결합도를 낮춰준다면, AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원하는 것입니다. AOP (Aspect-Oriented Programming) 란 단어를 번역하면 관점(관심) 지향 프로그래밍으로 됩니다. 이 관점(관심)이란 단어가 잘 와닿지 않아 AOP를 이해하는데 있어 더 어려움을 일으킨다고 생각하였습니다. 쉽게 얘기하면 프로젝트 구조를 바라 보는 관점을 바꿔보자는 이야기입니다. 우리는 보통 제 3자의 관점에서 바라보자 라는 이야기를 합니다. (제 3자의 관점) 즉, 대상을 바라보는 방향을 바꿔보자라는 이야기입니다. (핵심기능에서 바라본 관점) 각각의 Service는 핵심기능에서 바라보았을때는 Board,.. 2016. 12. 8.
AOP 정리 (2) 문제해결하기 - DI 상속을 피하기 위해 이번시간엔 DI (Dependency Injection)를 통해 문제를 해결해보려고 합니다. 제일 먼저 바꿀것은 BoardService 입니다. 전체적으로 바꿀 구조는 아래와 같습니다. (DI로 구조를 변경) BoardService 인터페이스를 BoardServicePerformance와 BoardServiceImpl이 구현하였습니다. 대신 집중해야할 로직인 Board 리스트를 조회하는 것은 BoardServiceImpl이 담당하고, 기타옵션인 수행시간 측정은 BoardServicePerformance가 구현하되, 그 과정에서 BoardServiceImpl을 주입(Injection) 받도록 하였습니다. 이렇게 되면 BoardServiceImpl과 BoardServ.. 2016. 12. 8.
AOP 정리 (1) 현재 신입사원 분들의 입사로 Spring에서 중요한 개념들에 대해 한번 정리하려고 작성하게 되었습니다. Spring의 가장 중요한 개념 중 하나인 AOP를 제 나름의 이해로 정리하였습니다. 틀린 내용이 있다면 가감 없이 댓글 부탁드리겠습니다. 모든 코드는 Github에 있으니 코드와 함께 보셔도 좋을것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github를 star 하시면 실시간으로 feed를 받을 수 있습니다.) (Spring AOP) Spring을 이해하는데 있어 최고는 토비님의 토비의 스프링을 읽어보는 것입니다. 제 블로그의 내용들은 단발성에 지나지 않습니다. 이것만으로는 Spring을 사용만 하는것이지 이해한 것은 아니라고 개인적으로 생각하고 있습니다. Spri.. 2016. 12. 8.

728x90
반응형