Computer Sci.

아키텍처의 사고는 크게 네 가지로 나뉜다. 아키텍처와 설계의 차이를 이해하고 아키텍처 작업을 진행하면 개발팀과 어떻게 협력해야 할지 아는 것 어느 정도 기술의 깊이를 유지하면서 폭넓은 기술 지식을 확보하는 것 아키텍트는 다른 사람들이 보지 못하는 해결책과 가능성을 떠올릴 수 있다. 다양한 솔루션과 기술 간의 트레이드오프를 이해하고, 분석하고 조율하는 것 비즈니스 동인(business driver)의 중요성을 이해하고 그것을 아키텍처 관심사로 해석할 줄 아는 것 2.1 아키텍처 대 설계 아키텍트처럼 사고한다는 건 비즈니스와 기술 문제를 해결하기 위해 아키텍처와 설계의 차이점을 알고 이 둘을 긴밀하게 통합한 솔루션을 모색하는 것이다. 전통적인 아키텍트의 책임과 개발자의 책임은 다음과 같다. 이 전통적인 아키..
을 읽고 챕터별로 주요한 내용들을 간략하게 정리해 보려고 한다. Ch01. 서론 10년 전만 해도 소프트웨어 아키텍트는 주로 모듈성(modularity), 컴포넌트(component), 패턴(pattern) 등 순수 기술적인 부분을 다루었지만, 이제는 (마이크로서비스처럼) 훨씬 폭 넓은 능력을 활용하는 새로운 아키텍처 스타일의 등장으로 인해 그 역할과 범위가 한층 더 확대되었다. p26 1.1 소프트웨어 아키텍처란? 소프트웨어 아키텍트는 이렇게 끊임없이 변하는 생태계 안에서 뭔가 결정을 내리는 사람들이다. 아키텍처를 공부하는 사람들이 명심해야 할 점은, 아키텍처란 예술과 마찬가지로 콘텍스트(context, 문맥, 맥락)로서만 이해할 수 있다는 것이다. 20세기의 아키텍처의 주요 목표 중 하나는 최대한 효..
오랜만에 백준 문제를 풀었다. Brute Force 부터 유형별로 차근차근 풀어보려 한다. 이 문제는 찐 Brute Force 문제이다. Brute Force는 하나하나 직접 다 해보는 방법을 말한다. 일반적으로 이 방법은 시간과 공간을 초과하기 때문에 만능은 아니지만.. 구현 방법이 떠오르지 않을 때는 가장 먼저 시도해 보면 좋은 방법이기도 하다. 이 문제는 5개의 테트로미노를 뒤집고 돌려서 종이에 놓았을 때 차지하는 4칸의 합을 가능한 경우 모두 구해준 뒤 가장 큰 값을 출력하면 된다. 테트로미노는 5개이지만 실제로 우리가 고려해야 하는 테트로미노는 다음과 같이 총 19개가 된다. 그리고 이 19개 각각에 대해 해당 종이(M*N)를 전부 돌면서 발생할 수 있는 모든 경우를 다 탐색해 주어야 한다. 이..
이번 포스팅에는 링크드인 러닝 CompTIA Network+ 5번 강의를 듣고 Securing TCP/IP 에 대하여 공부한 내용들을 정리해 보려고 한다. 네트워크에서 전송되는 데이터는 언제나 노출의 위험이 있다. 인터넷을 이용하면 어떠한 방법으로든 도청 혹은 변조가 가능하기 때문에 이를 방지하기 위한 방법들 중 하나로 암호화가 있다. 암호화(encryption) 암호화란 일상적인 문자로 쓰이는 평문을 암호키를 소유하지 않은 사람이 알아볼 수 없도록 알고리즘을 통해 암호문으로 변환하는 것이다. 암호화의 반대말은 복호화(decryption)이다. 암호화에는 크게 두 가지 방법이 있다. 비밀키 암호화(symmetric encryption, secret-key algorithms) 비밀키 암호화는 암호화할 때..
이번 포스팅에서는 DNS에 대해 공부한 내용을 정리해 보려고 한다. DNS는 Domain Name System의 약자로서, 인터넷 상에서 접근하는 도메인에 대해 찾아가야 할 IP 주소로 변환해 주는 시스템이다. 스마트폰이나 노트북에서 어떠한 서비스를 제공하는 서버에 이르기 위해서는 웹 브라우저에서 IP 주소라고 부르는 숫자를 입력해야 한다. 하지만 우리가 항상 이 숫자를 기억하기 어려우므로, 이름을 부여하여(ex. www.example.com) 웹 사이트로 갈 수가 있다. DNS는 숫자와 이름을 매핑하여 마치 전화번호부처럼 이름에 대한 요청을 IP 주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때 해당 사용자를 어떤 서버에 연결할 것인지를 제어하는 것이다. 이러한 요청을 쿼리라고 부른..
이번 포스팅에서는 링크드인 COMPTIA 네트워크 강의의 TCP/IP Application 부분 강의를 듣고 정리한 내용을 적어보려고 한다. TCP와 UDP 네트워크 계층 중 전송계층(Transport Layer)은 송신자와 수신자를 연결하는 계층으로, 데이터를 전달한다. 그리고 이 계층에서 데이터를 보내기 위해 사용하는 프로토콜이 TCP와 UDP이다. TCP는 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 된다. TCP의 특성은 아래와 같다. 연결형 서비스로 가상 회선 방식을 제공한다. 3 Way Handshake 방식으로 연결을 설정하고 4 Way ..
이번 포스팅에서는 라우팅에 대해 공부한 내용을 정리해 보려고 한다. 라우터(router)는 둘 이상의 네트워크와 네트워크 간 데이터 전송을 위한 경로를 설정해 주고 데이터가 해당 경로를 따라 한 네트워크에서 다른 네트워크로 통신할 수 있도록 도와주는 인터넷 접속장비이다. 내부 네트워크는 사용하는 컴퓨터 기종이나 OS, 프로토콜 등을 알 수 있기 때문에 네트워크 최적화를 이룰 수 있지만, 내부 네트워크를 외부 네트워크와 연결할 때는 정보가 제한되는데 이 때 라우터를 통해 두 네트워크를 연결한다. 라우터는 다른 기종간의 네트워크를 연결하는 기능을 하기 때문에 여러 가지 종류의 프로토콜에서 전송하는 패킷을 받아들일 수 있어야 한다. 이렇게 받아들인 패킷을 여러 경로 중 가장 효율적인 경로로 선택하여 흐름제어를..
이번 포스팅에서는 TCP/IP에 대해서 공부한 내용을 정리해 보려고 한다. 지난 포스팅에서 IP 주소에 대해서 공부를 했었다. 네트워크 안에 있는 모든 컴퓨터(노드라고도 한다)는 고유한 IP 주소를 가지고 있다. IP 주소는 2진수 32개로 이루어져 있고 우리는 2진수가 익숙하지 않으므로 10진수로 표현해서 0.0.0.0 ~ 255.255.255.255 의 형태로 IP 주소를 표현한다. 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시켜야 할 때가 있는데 이 때 사용하는 프로토콜을 ARP(Address Resolution Protocol)라고 한다. TCP/IP 4계층에서 3계층(네트워크 계층)의 IP 주소를 2계층(데이터 링크 계층)의 MAC 주소로 대응시킬 때 사용한다. arp -a 명령어를..
DevOwen
'Computer Sci.' 카테고리의 글 목록 (3 Page)