목록오블완 (15)
구어체로 설명하는 다이어리
블로그에는 가급적 공부 관련된 것만 올리고 싶었는데 오늘은 사무실에 흡연자 분들이 꽤 많이 남아 계셔서 버틸 수 없어 퇴근했습니다. 집에 가서 새로운 주제로 공부를 해야 마땅합니다만 폭설 이슈로 쉬어 가고 싶어졌기 때문에 봐주셨으면 하네요…티스토리 오블완 하느라 책 필사 하던 걸 멈추고 오리지널 포스팅을 많이 올려 보고자 했는데 어떠신가요? 괜찮았나요? 내일부터는 오블완도 끝나니 미뤄뒀던 리팩터링 책을 다시 읽어 보려 합니다. 다들 건강하세요. 감기 조심하시구요.

UML이란 UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어입니다. UML의 구성 요소에는 다음과 같은 3가지가 있습니다. UML의 구성요소사물 (Things)관계 (Relationships)다이어그램 (Diagram) 사물 (Things) 사물은 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말합니다. 사물내용구조 사물 (Structural Things)- 시스템의 개념적 물리적 요소를 표현- 클래스 (Class), 유스케이스 (Use Case), 컴포넌트 (Components), 노드 (Node) 등행동 사물 (Behavioral Things)- 시간과 공간에 따른 ..

요구사항 분석이란 요구사항 분석이란 소프트웨어의 실제적인 첫 단계로, 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동을 의미합니다. 중요한 것은 클라이언트의 요구사항을 분석하여 문서화(명세화) 하는 행위입니다. 이단계에서는 고객이 원하는 요구사항을 정확하게 파악하고, 타당성을 검토하며 비용와 일정을 산정합니다. 구조적 분석 기법 상대방이 말하고자 하는 것, 구현하고자 하는 일은 의외로 어려운 일이라서 요구사항을 명확하게 파악하기 위해서는 문서화가 정말 중요합니다. 자칫 추상적이거나 체계적이지 않은 분석이 이루어질 수 있기 때문이죠. 체계적인 방법론으로 구조적 분석 기법을 들 수 있는데요. 주로 자료의 처리나 흐름을 시각적으로 표현하여 이해하기 쉽게 만들고, 시스템의 기능을 계층적으로..

익스트림 프로그래밍이란 익스트림 프로그래밍(eXtreme Programming)이란 수시로 발생하는 고객의 요구사항을 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상하는 방법론입니다. 말이 어렵지만, 고객의 요구사항을 빠르게 적용하기 위해 릴리즈 단위를 나눈 것이라고 생각하면 됩니다. XP 개발 프로세스 릴리즈 계획 수립 (Release Planning)부분 혹은 전체 개발 완료 시점에 대한 일정을 수립하는 것몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것을 릴리즈라고 함 이터레이션 (Iteration, 주기)실제 개발 작업을 진행하는 과정으로, 보통 1~3주 정도의 기간으로 진행됨 승인 검사 (Acceptance Test, 인수 테스트..

브로드캐스트란 브로드캐스트란 네트워크 통신 방식 중에 하나로, 같은 네트워크에 있는 모든 기기에 데이터를 전송하는 방식입니다. 우리는 그동안 1:1 전송인 유니캐스트, 1:다 전송인 멀티캐스트에 대해서 배웠죠? 유니캐스트가 1:1로 특정한 대상에게 데이터를 전송하고, 멀티캐스트가 특정 그룹에 한 번만 전송하는 통신 방식이었다면 브로드캐스트는 로컬 네트워크(LAN)에 연결된 모든 기기에 데이터를 전송합니다. [참고자료]오늘의 참고자료는 배경지식

유니캐스트란 유니캐스트란 단일 송신자가 단일 수신자에게 1:1로 데이터를 전송하는 방식입니다. 인터넷에서 아주 기본적으로 사용되고 있는 데이터 전송 방식인데요. 주로 어떠한 때에 사용하냐면 이메일을 전송할 때 사용합니다. 편지를 쓰는 사람 (송신자)이 편지를 받는 사람 (수신자) 에게 데이터를 1:1로 전송할 때 말이죠. 이렇게 데이터를 주고받는 상대가 명확하기 때문에 불필요한 데이터 전송을 막을 수 있습니다. 그러나 동일한 데이터를 여러 사람에게 보내야 할 경우 송신자가 수신자에게 각각 별도로 연결해야 해서 데이터 전송량이 증가할 수 있습니다. 이런 경우 저번에 배운 멀티캐스트를 이용하면 좋겠죠? [참고자료]참고자료1 [네트워크] 네트워크 통신 방식 (Unicast, Brodcast, Mult..

멀티캐스트란 멀티캐스트는 송신 측에서 여러 개의 수신 측에 데이터를 동시에 전송하는 통신 방식입니다. 멀티캐스트에서는 수신자를 특정 그룹으로 묶어 데이터를 전달합니다. TV 방송을 떠올리면 이해하기 쉬운데, 방송국 (송신자)은 시청자 (수신자) 들이 데이터를 수신하는지 확인하지 않고 데이터를 송출합니다. UDP의 특징이 떠오르지 않나요? 특정 그룹에 동일한 데이터를 한 번만 전송해도 그룹에 속한 모든 수신자가 데이터를 수신할 수 있기 때문에 효율적으로 데이터를 전송할 수 있고 네트워크 대역폭이 절약된다는 장점이 있습니다.멀티캐스트 통신에서는 IPv4의 경우 224.0.0.0 ~ 239.255.255.255 범위의 IP 주소가 사용되고, 수신자는 IGMP (Internet Group Management ..

프로토콜의 기본 3요소 오늘은 프로토콜의 기본 3요소에 대해 알아보겠습니다. 프로토콜은 인터넷에서 사용하는 통신 규약인데요. 여러 포스팅에서 설명했지만, 나와 상대방이 대화가 가능한 이유는 같은 언어 (한국어) 로 문법에 맞춰 이야기를 나누기 때문입니다. 이렇듯 사전에 어떤 방식으로 통신할 것인지 정해둔 약속이 바로 프로토콜입니다.이러한 내용을 개념적으로 설명한 것이 기본 3요소입니다. 프로토콜의 기본 3요소는 구문 (Syntax), 의미 (Semantic), 시간 (Timing) 으로 나뉘어집니다. 구문 (Syntax)구문이란 데이터 형식과 구조를 정의합니다. 전송하고자 하는 데이터의 형식 (Format), 부호화 (Coding), 신호 레벨 (Signal Level) 등을 규정합니다. 의미 (Se..

스스로 생각하는 개발자의 기준은 어느 정도인가 회고에 앞서 그동안 작성했던 후기를 살펴보니 내가 생각하는 개발자의 기준이 너무 명확해서 우스웠다. 내가 개발자의 기본으로 생각하는 것을 가볍게 적어 보자면, 아키텍처 설계를 구상하거나 이해할 줄 알아야 하고, 요구사항 분석과 문제 해결 능력이 뛰어나야 하며, 디자인 패턴 등을 적재적소에 맞게 활용할 줄 알아야 하고, 유지보수가 쉽도록 코드를 간결하게 표현할 줄 알아야 한다. 그러면서도 기술적으로 트렌디함을 잃지 않아야 하고, 커뮤니케이션에 능해야 하며, 그 일을 진정으로 즐겨야만 한다. 그 외에도 여러 가지가 있지만 대충 이렇다. 적고 보니 나는 내가 갖지 못한 것에 대한 로망과 선망으로 점철된 유니콘 개발자가 되고 싶어 하는 것이 글에서 빤히 드러나는 ..

OSI 7계층 (잠깐 사담) 당분간 블로그 글을 짧게 올릴 예정입니다. 왜냐하면 사실은 최근에 업무가 갑자기 바빠졌기 때문에 스터디를 할 시간이 여유가 나지 않아서이기도 하고, 매일매일 블로그에 기록하지 않으니까 스터디는 스터디대로 진도가 나가지 않는 것 같아서입니다. 사실 여러분은 모르시겠지만 저는 OSI 7계층을 약 2주 전부터 외우고 있었습니다만 지금도 계속 헷갈리는 상태라... 일단 포스팅을 올려둔 후 두고두고 수정하는 것이 좋을 것 같다는 생각에서였습니다. 어쨌든 사담이 길었습니다. OSI 7계층이란 통신이 일어나는 순서를 7단계로 나눈 것입니다. 이렇게 단계별로 나누는 이유는 어느 한 곳에서 문제가 생겼을 때 원인을 빠르게 찾을 수 있기 때문입니다. 보통 기사 시험에 많이 나오곤 하는데요...