본문 바로가기

분류 전체보기147

백준 [9461] - 파도반 수열 - Java 백준 9461 - 파도반 수열 백준 9461 다이나믹 프로그래밍 카테고리에 있는 문제입니다. 먼저 문제를 살펴보겠습니다. 이 문제에서 핵심은 P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. 이 부분입니다. 여기서 정답을 출력하기 위한 점화식을 도출 할 수 있습니다. P(n) => p(n - 2) + p(n - 3) 이런 수식을 도출 할 수 있습니다. n의 값을 구하려면 n - 2의 값과 n - 3의 값을 더하면 됩니다. 문제의 입력, 출력부분과 함께 코드를 보며 설명하겠습니다. import java.util.Scanner; public class PadovanSequence { public static void main(String[] args) { .. 2020. 9. 4.
미드 실리콘 밸리 - 스포주의 미드 실리콘 밸리 - 스포주의!!! 실리콘 밸리에서의 개발자의 삶에 관한 미드, 실리콘 밸리를 보고 참 많은 생각이 들어 느낀점을 정리해보려고 합니다. 약간의 스포가 있으니… 주의해주시길 바랍니다ㅎ 먼저 간단히 드라마에 대해 소개하자면 실리콘 밸리에서 개발자들이 겪는 이야기를 코미디 형식으로 재미나게 그려낸 드라마이다. 이 드라마는 몇 년전 한참 개발자에 대한 꿈을 키워나가고 있을 때, 접하게 되었다. 나는 관심사가 생기면 그 관심사에 관한 드라마나 영화 등을 보곤 하는데 본격적으로 개발자의 꿈을 키워나가고 있을 때 봤던 드라마다. 그때는 시즌2까지만 나왔었지만 최근 왓챠라는 어플을 통해 다시 볼수 있게되어 다시 보게되었다. 현재 시즌6를 끝으로 완결이 났지만 왓챠에서는 시즌4 까지만 볼 수 있다.. 아.. 2020. 7. 29.
TCP, UDP란 TCP UDP란 TCP, UDP 는 TCP/IP 모델의 전송 계층 에서 사용하는 프로토콜 입니다. TCP, UDP 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어있습니다. TCP는 연속성보다 신뢰성이 있는 전송이 중요할 때 사용하는 프로토콜입니다. UDP는 신뢰성보다 연속성이 있는 전송이 중요할 때 사용하는 프로토콜입니다. 그럼 TCP부터 자세히 알아보겠습니다. TCP TCP는 Transmission Control Protocol의 약자입니다. 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간의 데이터를 안정적으로, 순서대로, 에러없이 교환하게 해줍니다. 연결형 서비스 TCP는 연결형 서비스로 가상 회선 방식을 제공합니다. 3-way handshaking을 통해 연결.. 2020. 7. 21.
TCP/IP 4계층 이란 TCP/IP 4계층 TCP/IP 모델은 현재의 인터넷에서 컴퓨터들이 정보를 주고 받는데 쓰이는 프로토콜의 모음입니다. 하드웨어, 운영체제, 접속 매체에 관계없이 동작할 수 있는 개방성을 가집니다. _출처:https://hahahoho5915.tistory.com/15_ 1. 네트워크 엑세스 계층 (Network Access Layer) OSI 7계층의 물리 계층과 데이터 링크 계층에 해당합니다. OS의 네트워크 카드와 디바이스 드라이버 등과 같이 하드웨어적인 요소와 관련된 모든 것을 지원하는 계층입니다. 물리적인 주소로 MAC을 사용합니다. LAN, 패킷망 등에 사용됩니다. 2. 인터넷 계층 (Internet Layer) OSI 7계층의 네트워크 계층에 해당합니다. 통신 노드 간의 IP 패킷을 전송하는 .. 2020. 7. 19.
OSI 7계층이란 OSI 7 계층 (OSI 7 Layer) OSI 7계층(OSI 7 Layer)에 대해서 알아보겠습니다. 탄생 배경 데이터를 주고 받기위한 규칙을 프로토콜 이라고 합니다. 하지만 이런 규칙이 통신 회사마다 다르다면 어떤 일이 일어나게 될까요? 예를들어 하나의 게임을 하기위해선 게임 개발 회사에서 지정한 장비만으로 게임을 해야할 것입니다. 단순히 메일을 주고받을 때 역시 상대방과 프로토콜을 맞추기 위해 많은 노력을 해야 할 수도 있습니다. 이러한 문제를 해결하기 위해 ISO(국제 표준화 기구)에서 데이터를 주고받기 위한 규칙인 프로토콜을 표준화해서 나온게 바로 OSI 7계층입니다. 출처:http://www.a24s.com/data/jeongbotongsinhakseub/jbts/contents/ch2-4.h.. 2020. 7. 16.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 마무리 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에 이어서 점수 계산과 화면 출력에 대해 구현해보겠습니다. 자세한 코드는 깃 허브 에 저장되어 있습니다. 이제 본격적으로 점수 계산 기능을 구현하겠습니다. 10개의 Frame이 자신의 점수를 가지고 있고, 점수에 따른 Frame의 상태 즉, STRIKE, SPAIRE 인지 아니면 단순히 평범하게 점수를 획득한 Frame인지에 대한 값을 가지게 됩니다. 먼저 Score 객체를 수정하겠습니다. private int firstShot; private int secondShot; private int finalShot; 기존의 Score 객체가 가지는 상태 값입니다. int 형 변수를 3개 사용하고 있습니다. 이 3개의 변수는 점수라는 하나의 공통.. 2020. 7. 6.
스트레스 관리의 중요성 스트레스 관리의 중요성 최근 공부의 양이 현저히 줄어들었다. 때문에 블로그 포스트도 잘 못쓰고 있다… 이것 저것 준비할 것들이 많이 쌓이고, 쌓인만큼 해결도 되지않아 마음 고생중이다. 사실 준비할 것들이 개발과 관련됬다면 얘기가 좀 달랐겠지만 개발과 전혀 관련없는 일들이 겹치니 공부하려고 해도 집중이 잘 되지않는다… 스트레스가 쌓이니 점점 의욕이 떨어지고, 떨어진 의욕으로 생활하다보니 공부를 소흘히 하게된다. 1일 1커밋도 알고리즘 문제를 풀고 커밋하는게 주가 되었다. 회복하고 싶다아아아 과거 면접에서 스트레스 관리나 취미에 대한 질문을 종종 듣곤 했는데, 그 이유를 알 것 같다. 다른 곳에서 스트레스를 받다보니 개발 공부에 소흘히하게 되는데, 스트레스 관리를 잘 해줘야 무사히 원래의 상태로 돌아올 수 .. 2020. 6. 21.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 구현하기(2) 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에 이어서 Frame 클래스를 인터페이스를 이용하여 추상화 시키는 작업을 진행하겠습니다. 자세한 코드는 깃 허브 에 저장되어 있습니다. Frame Interface public interface Frame { boolean hasTurn(); void deductTurn(); } 프레임은 공통적으로 투구의 횟수가 남았는지와 투구 후에 턴을 계산하는 메세지를 수신할 수 있습니다. NomalFrame public class NomalFrame implements Frame { private static final int NOMAL_FRAME = 2; private static final int TOTAL_PIN = 10; private int .. 2020. 6. 10.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 구현하기(1) 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에서는 객체간의 메시지들을 생각해보고 객체가 외부에 공개하는 인터페이스를 통해 메시지를 어떻게 수신할지 간단하게 작성해봤습니다. 이번 포스트부터는 기능의 구현을 통해 객체 간의 협력이 어떻게 이루어지는지 살펴보도록 하겠습니다. 먼저 Pin 클래스를 구현해보도록 하겠습니다. 한 프레임에 볼링 핀은 총 10개가 세워지게됩니다. 플레이어가 공을 투구하여 세워진 10개의 볼링 핀을 맞추게됩니다. 물론 못 맞출수도 있겠죠. 그리고, 각각의 볼링 핀 구현이 아닌 최대 10개까지, 즉 0개 이상의 볼링 핀을 구현하기 때문에 Pin -> Pins로 클래스 이름을 변경하겠습니다. public class Pins { private static final in.. 2020. 6. 5.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 메시지 생각하기 객체지향 연습하기 (Java) - 볼링 게임 점수판 지난 포스트 에서 볼링 게임 점수판을 구현하기에 앞서 생각해야할 것들을 정리해봤습니다. 이번 포스트에서는 볼링 게임 점수판을 구현하기 위해 어떤 객체들이 있고, 어떤 메시지들이 필요한지 살펴보겠습니다. 다만 주의할 점은 설계는 구현 과정에서 변할 수 있다는 점과 구현 전에 생각해보는 설계에 너무 큰 공을 들이지는 않을 것이라는 점입니다. 먼저 볼링 게임 점수판에는 어떤 객체들이 있을지 생각해보겠습니다. 플레이어 첫번째로 볼링 게임을 플레이하는 플레이어가 있습니다. 플레이어는 투구를 해서 볼링 핀을 넘어뜨리게 됩니다. 지금 프로젝트는 볼링 게임 프로젝트가 아닌 볼링 게임 점수판 프로젝트이기 때문에 플레이어가 어떤 식으로 투구할지는 생략하겠습니다. 볼링 핀.. 2020. 5. 26.
객체지향 연습하기 (Java) - 볼링 게임 점수판 - 생각해보기 객체지향 연습하기 (Java) - 볼링 게임 점수판 객체지향의 사실과 오해를 읽고, 객체지향 패러다임을 좀 더 이해하고, 연습하기 위한 자바 프로젝트입니다. 프로젝트의 주제는 객체 지향 프로그래밍 연습하기 좋은 방법은? 이라는 글을 읽고 볼링 게임 점수판으로 결정했습니다. 틀린 점, 개선해야할 부분이 있다면 피드백 주시기 바랍니다. 아무래도 경험이 부족하다보니 '~~ 것 같습니다' 같은 표현이 많이 등장하는 점 양해부탁드립니다. 구현에 앞서 프로젝트에 대한 분석과 설계를 해보겠습니다. 가장 먼저 해야할 것은 볼링 게임의 점수가 어떤식으로 계산이 되는지 알아보는 것 입니다. 볼링 점수 계산법 위의 내용을 간략히 정리해보면 볼링 핀은 10개 이다. 프레임은 총 10번 진행된다. 플레이어는 한 프레임에 두번 .. 2020. 5. 19.
Git Hub - Issues & Projects로 프로젝트 관리하기 Git Hub - Issues & Projects로 프로젝트 관리하기 Git Hub에 있는 Issues Projects 기능을 이용해 프로젝트를 관리하는 법을 알아보겠습니다. 간략하게 용어에 대해 설명하자면 Issue(이슈)는 다양한 작업 이라고 생각하시면 됩니다. 버그 수정, 새로운 기능 추가, 개선 해야할 기능 등등을 이슈라고 합니다. 이런 다양한 Issue(이슈)를 기반으로 작업을 진행하게 됩니다. 이런 Issue(이슈)를 관리하는 도구를 이슈 트래커라고 부릅니다. JIRA Trello 등등 다양한 이슈 트래커들이 있습니다. 그 중에서 앞서 말한대로 Git Hub에 있는 Issues Projects 기능을 이용하겠습니다. 깃허브에 있는 repo중에 관리할 repo를 선택해 들어갑니다. Issues .. 2020. 5. 10.