본문 바로가기
반응형

전체글638

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.
"그 연차치곤 잘하네"의 함정 이런 저런 스터디를 많이 하다보니 다양한 연차의 사람들을 만나게 된다. 10년차 이상의 개발자분도 계시고, 취업준비생도 있고, 나와 비슷한 주니어 개발자 분들은 특히나 많이 만나왔다. 그러다보니 내가 했던 실수를 똑같이 하시는 분들을 보게 되서 그 이야기를 한번 해보려고 한다. 막 줌인터넷에 입사했을 때 Javascript 스터디에 참석하여 주말마다 공부를 한적이 있다. 당시엔 SI회사에서 10개월정도 일한 경험이 있는데 스터디 참석시에 완전 생초보는 안된다해서 이전 회사 경력+현재회사 경력포함해서 일한지 1년 넘었다는 얘기를 하며 참여하게 되었다. 모든 스터디가 그렇지만 초창기엔 크게 어려운 내용도 없었을 뿐더러 회사에서 Javascript 작업이 많아서 전반적으로 쉽게쉽게 따라갈 수 있었고 몇번의 발.. 2016. 12. 6.
OKKY의 비전공/취준생 멘토링 2016 세미나 참석 후기! 믿고 듣는 OKKY의 세미나! 올해 2번째 멘토링이였던 비전공자/취준생들을 위한 멘토링에 참석하였습니다. (혹시나 다른 세미나 정보도 알고 싶다면 제 Github를 star 하시거나, 블로그를 feed 받으시면 됩니다. 꾸준히 세미나 참석하여 후기를 남기고 있습니다.) 이번 세미나는 오직 비전공자! 만을 위한 세미나였습니다. 멘토님들도, 지원자분들도 모두 비전공자인 분들만 모셔서 우리들만의 이야기를 하였습니다. (전공자인 너는 몰라!) 저 역시 비전공자 (공대인건 함정) 출신이기도 하고, 같은 비전공자 출신의 멘토님들은 어떤 이야기를 해주실지 궁금해서 참석하게 되었습니다. 참고로 이번 세미나의 장소는 아이온 커뮤니케이션즈에서 제공해주셨습니다. 다들 한번씩 사이트 방문을 해보시면 다음에 또 좋은 장소를 대.. 2016. 11. 29.
객체지향 좀 더 이해하기 - 블랙잭 게임 구현 (5) 2-5. Rule 구현하기 Rule은 승자를 판단하는 역할을 갖고 있습니다. 그래서 게임에 참여한 Player들의 카드를 비교해 승자를 구하는 코드를 구현해보겠습니다. public Player getWinner(List players){ Player highestPlayer = null; int highestPoint = 0; for(Player player : players) { int playerPointSum = getPointSum(player.openCards()); if(playerPointSum > highestPoint){ highestPlayer = player; highestPoint = playerPointSum; } } return highestPlayer; } private int.. 2016. 11. 28.

728x90
반응형