본문 바로가기
반응형

전체글587

"그 연차치곤 잘하네"의 함정 이런 저런 스터디를 많이 하다보니 다양한 연차의 사람들을 만나게 된다. 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.
객체지향 좀 더 이해하기 - 블랙잭 게임 구현 (4) 2-4. Player 구현 코드를 보시면 불편해 보이는 코드가 대거 보이실것 같습니다. 2개의 메소드 모두 dealer와 gamer만 다르지 같은 일을 하는 코드가 대부분입니다. 반대로 생각해보면 dealer와 gamer만 하나로 볼 수 있으면 코드 중복을 제거할 수 있지 않을까요?? Gamer와 Dealer는 여러 조건들에 의해 서로 다른 구현 코드를 가지고 있습니다. 하지만 카드를 받아야하고, 가진 카드를 보여줘야 한다는 공통점을 가지고 있습니다. 우린 이 공통점을 묶어 Player라는 객체를 생성하여 Gamer와 Dealer를 Player에 속하도록 수정하겠습니다. (참고로, 이렇게 서로 다른 객체들의 차이점을 배제하고, 공통점만을 취해 단순화 하는 것을 추상화 라고 합니다. 객체지향을 좀 더 단순.. 2016. 11. 27.
객체지향 좀 더 이해하기 - 블랙잭 게임 구현 (3) 2-3. Dealer 구현 다음 단계로 Dealer를 구현해보겠습니다. Dealer의 역할은 아래와 같습니다. 추가로 카드를 받는다. 단, 2카드의 합계 점수가 16점 이하이면 반드시 1장을 추가로 뽑고, 17점 이상이면 받을 수 없다. 뽑은 카드를 소유한다. 카드를 오픈한다. 이렇게 될 수 있었던 이유는 게임의 승패를 판단하는 것은 Rule 객체가, 카드를 뽑는 것은 카드덱 객체가 맡았기 때문입니다. 그럼 위 역할들만 구현해보겠습니다. Dealer에는 Gamer와 달리 16점 이하일 경우에만 추가로 카드를 받을 수 있다는 제한이 있습니다. 이를 구현하기 위해 각 카드별로 포인트를 가질 수 있도록 하는 것이 좋습니다. 해당 기능은 카드를 뽑을때마다 계산할 수도 있지만, 처음 CardDeck에서 카드를 생.. 2016. 11. 27.
객체지향 좀 더 이해하기 - 블랙잭 게임 구현 (2) 2-2. Gamer 구현 Gamer의 역할은 아래와 같습니다. 추가로 카드를 받는다. 뽑은 카드를 소유한다. 카드를 오픈한다. receiveCard와 cards를 담을 구현체를 생성자에 추가하였습니다. public class Gamer { private List cards; public Gamer() { cards = new ArrayList(); } public void receiveCard(Card card) { this.cards.add(card); } public List openCards(){ return null; } } Gamer의 경우 사용자가 현재 카드들의 총 Point를 보며 카드를 더 뽑을지 말지를 결정하게 됩니다. 이를 위해서는 Gamer는 현재 카드들을 확인 할 수 있어야 합니다... 2016. 11. 27.

728x90
반응형