전체 글 243

[모두의 네트워크] 03장. 물리계층 : 데이터를 전기 신호로 변환하기

물리 계층의 역할과 랜카드의 구조 물리 계층 OSI 7계층 중 최하위 1계층으로써 데이터를 전송하기 위해 시스템 간의 물리적인 연결을 하고 전기 신호의 변환 및 제어하는 역할을 담당. 네트워크를 통해 주고받는 0과 1만으로 이루어진 비트열 데이터를 전기 신호로 변환해줌. 즉, 전송 매체를 통해 데이터를 통신할 수 있는 전기적인 신호로 바꾸어 전송함. 전기 신호에는 디지털 신호와 아날로그 신호가 존재. 요악하자면 물리계층은 컴퓨터와 네트워크 장비를 연결하고 컴퓨터와 네트워크 장비 간에 전송되는 데이터를 전기 신호로 변환하는 계층. 전기 신호 전압이 일정 패턴으로 변하여 생기는 일련의 흐름으로 전압의 변화가 모여서 만들어진 신호. 전기 신호들을 주고 받음으로써 네트워크에서 사진이나 문서를 주고받음. 디지털 ..

Summary 2021.12.01

[모두의 네트워크] 02장. 네트워크의 기본 규칙

네트워크의 규칙 프로토콜 컴퓨터 간에 정보를 주고받을 때의 통신 방법에 대한 규칙이나 표준. OSI 모델과 TCP/IP 모델 OSI모델 국제표준화기구(ISO)가 1977년에 정의한 국제 통신 표준 규약. 네트워크의 기본 구조를 7계층으로 나눠서 표준화한 통신 규약으로 현재 다른 모든 통신 규약의 기반. OSI 7계층 (Open Standards Interconnection) 계층 이름 설명, 기능 및 특징 장비 전송 단위 프로토콜 7계층 응용 계층 (Application Layer, 애플리케이션 계층) 이메일 & 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공. Data HTTP, FTP, DNS, DHCP, SMTP 6계층 표현 계층 (Presentation Layer, 프레젠테이션 ..

Summary 2021.11.25

[모두의 네트워크] 01장. 네트워크 첫걸음

네트워크의 구조 네트워크 컴퓨터를 두 대 이상 연결하여 서로 데이터를 전송할 수 있는 통신망. 패킷 네트워크를 통해 전송되는 데이터의 작은 조각. 데이터가 클수록 전송함에 있어 대역폭을 크게 차지 하기 때문에 작은 크기의 패킷 단위로 전송. 데이터가 패킷단위로 순서없이 나뉘어져 전송되기 때문에 순서정보 및 다양한 정보를 포함. ex) Ethernet Packet, TCP Packet, IP Packet 비트(bit) 0과 1로 이루어진 정보의 최소 단위. 바이트(byte) 컴퓨터의 정보량 단위로써 8비트는 1바이트. 랜과 왠 LAN (Local Area Network, 근거리 통신망) 비교적 가까운 거리에 위치한 장치들을 서로 연결한 네트워크. ISP (Internet Service Provider, 인..

Summary 2021.11.25

[OOP] SOLID 원칙

SOLID란 클린코드의 저자 로버트 C.마틴이 2000년대 초, 객체지향 프로그래밍 및 설계의 다섯가지 원칙을 정의하였다. 이를 동료 개발자인 마이클 페더스가 앞글자를 따와서 정리한 것이 SOLID 이다. 응집도를 높이고, 결합도는 낮추는 원칙을 OOP 즉, 객체지향의 관점에서 재정립한 설계 원칙이다. 다음과 같은 다섯가지가 있다. 1. SRP (Single Responsibility Principle) : 단일 책임 원칙 2. OCP (Open Closed Principle) : 개방 폐쇄 원칙 3. LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 4. ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 5. DIP (De..

[WEB] Web Server와 WAS를 연동하는 이유

[WEB] Web Server와 WAS [WEB] Web Server와 WAS Web Server란? 개념 하드웨어적 의미로는 Web Server가 설치되어 있는 컴퓨터 소프트웨어적 의미로는 클라이언트의 요청을 받아 정적 컨텐츠(image, html, css, javascript 등)를 제공하는 서버 기능 HTTP 프로 minkwon4.tistory.com Web Server인 Apache에 대해 학습하던 중 만일 Web Server가 단순히 정적 데이터를 처리해주는 용도로만 사용된다면 WAS앞에 Web Server가 꼭 필요한지에 대한 의문이 생기게 되었다. 위에 작성된 포스팅에 따르면 Web Server가 다양한 기능을 제공하지만 만일 정적데이터만 처리를 하는 역할을 하는 경우, WAS 또한 정적데이..

Java&Web 2021.08.24

[Apache] Apache의 Rewrite 모듈 (mod_rewrite)

한 서비스의 새로운 버전 개발을 담당한 경험이 있다. 버전이 바뀌면서 서버도 새로 바뀌고, API도 개선이 되었고, 그에 따라 요청 파라미터도 변경이 생기게 되었다. 신서버의 작업이 완료된 후, 다른 기존 서비스들과의 연동작업을 진행하게 되었는데, 이때 일부 서비스와 연동 중 신서버로 구서버의 요청 파라미터를 가진 요청들이 발생하였다. 따라서 신서버의 웹서버에서 파라미터의 값을 이용하여 각 파라미터에 알맞은 서버로의 Rewrite Rule 적용이 필요하였다. Apache 환경에서 Rewrite Rule에 대해 알아보고 실습을 진행해보았다. mod_rewrite란 mod_rewrite는 조건 및 규칙을 기반으로 URL을 전환 및 재작성할 수 있도록 도와주는 Apache 확장 모듈이다. mod_rewrite..

Java&Web 2021.08.20

[BOJ] 17265. 나의 인생에는 수학과 함께

단순한 DFS문제였다. 맨처음 백트래킹으로 접근하려했으나, 오른쪽과 아래로만 접근이 가능하기에 DFS를 적용하여 풀어주었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 package algostudy3; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; publi..

Algorithm 2021.07.28

[JUnit] Maven을 이용하여 특정 JUnit Test 실행시키기

Springboot 환경에서 Spring REST Docs(링크)를 적용시켜본 경험이 있다. Spring REST Docs를 간단히 설명하자면 REST API를 자동으로 문서화해주는 프레임워크이다. 여기까지 본다면 문서화를 도와주는 또 다른 프레임워크인 Swagger와 비슷해보이지만, 가장 큰 차이점은 Spring REST Docs는 프로젝트에 존재하는 테스트 코드(JUnit Test)를 이용하여 자동적으로 문서를 생성해주는 것이다. 따라서 API를 잘 보여줄 수 있는 적절한 테스트 코드와 통과하는 테스트 코드를 작성하는 것이 중요해진다. Spring REST Docs에 대한 더 자세한 내용은 추후의 다룰 예정이다. 본론으로 돌아와 Springboot 프로젝트의 Spring REST Docs를 특정 서버..

Java&Web 2021.07.27

[BOJ] 18223. 민준이와 마산 그리고 건우

다익스트라를 활용한 문제였다. 총 2번의 다익스트라를 활용하였는데, 출발점 기준 그리고 친구 기준으로 두번 다익스트라를 활용하였다. 출발에서 목적지까지의 거리랑 출발에서 친구 + 친구에서 목적지 까지의 거리를 비교하는 간단한 문제였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92..

Algorithm 2021.07.20

[BOJ] 14752. 개미굴

Trie와 DFS를 활용한 문제였다. Trie를 활용하기 위해 Node라는 클래스를 만들고, 그안에 child라는 Map구조의 Node를 주었다. 일반 적인 Trie문제와 다르게 배열대신 Map을 활용해보았다. 그렇게 모든 입력들을 root아래 저장 후, DFS를 활용하여 출력을 해주었다. 단, 이때 알파벳순 출력이 필요하기때문에 Map의 keySet을 정렬된 리스트의 형태로 만들고 문제를 풀었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61..

Algorithm 2021.07.20