본문 바로가기

자바7

(2020) 1. 비전공자로 자바 백엔드 개발자 시작하기 저는 개인적으로 이런 이야기를 하는 것을 썩 좋아하진 않습니다. 어떤 사람의 커리어나, 그 사람의 현재 위치는 운이 굉장히 큰 영향을 끼쳤다고 믿기 때문입니다. 그 사람이 했던 방식, 했던 선택들을 그대로 한다고 해서 똑같은 결과물이 나온다는 보장이 없다고 생각합니다. 그래서 누군가의 상황을 듣고, "아! 그런 상황은 이렇게 이렇게 해보세요" 라고 조언할 수가 없습니다. 일단, 저도 모든 선택이 다 처음이여서요. 리셋버튼 누르면서 2~3회차 살아온게 아니라는거죠. 꽃보다 누나에서 윤여정 선생님과 이승기님의 이야기는 꼭 한번 보시면 좋습니다. 질문자분의 상황/성향/학습방법/습관 등 모든게 다 저와 똑같진 않겠죠? 모두가 똑같은 스탯을 가진 케릭터로 시작하여 똑같은 루트를 고르면 성장속도가 비슷한 게임처럼 .. 2020. 6. 1.
Spring Camp 2017 - 2부 (일요일) 참석 후기! 스프링캠프 2017의 2부를 다녀왔습니다. 오늘은 지인 분들의 발표가 많아 더 재밌게 들을 수 있었던것 같습니다.스프링캠프에는 항상 이렇게 커피를 제공해주십니다.맛있게 아이스 아메리카노를 다 마시고 입장하였습니다. (세미나실 내부에서 절대 음식 반입이 안됩니다.)누구나 하는 Devops - 공진기(IBM에서 근무하는 공진기님의 발표입니다.)Devops에 대해 이야기 해보려고 함Devops가 무엇인지Devops를 어떻게 하면 되는지IBM에서 어떻게 하는지기술적인 것도 있지만, 팀 내에서 Devops에 대한 합의를 이끌어내는 방법도 얘기Devops란?개발 + 운영? 아니다개발 및 운영이 유기적으로 진행되는 것자동화를 통해 품질, 속도, 효율성 증가 / 비용, 오류 감소단, 개발/시스템/아키텍처에 대한 깊은 .. 2017. 4. 23.
객체지향 좀 더 이해하기 - 블랙잭 게임 구현 (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.