목록전체 글 (110)
Skipalong's tistory
오늘은 TCP/IP 4계층에 대해 공부를 해 보았다. 그 중에 내가 발표를 맡은 전송계층에 대해 준비한 자료를 적어보겠다. 전송계층이란? 송신자와 수신자를 연결하는 통신 서비스를 제공 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공 애플리케이션 계층과 인터넷 계층 사이의 데이터가 전달될 때 중계역할 대표적으로 TCP, UDP 가 있음 TCP와 UDP TCP 패킷 사이의 순서를 보장 연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인 가상회선 패킷 교환방식 사용 데이터의 손실 없는 전송을 보장 가상회선 패킷 교환방식 모든 패킷의 경로를 일정하게 유지 데이터를 패킷 단위로 나누어 전송 가상 연결 설정을 통해 전송되는 모든 패킷의 경로가 동일 패킷의 도착 순서가 일정 (출발..
오늘은 프로그래머스 크레인 인형뽑기 문제를 풀었다. https://school.programmers.co.kr/learn/courses/30/lessons/64061 문제 이 문제는 n*n 2차원 배열을 한곳에 쌓고 같은 숫자가 들어오면 같은 쌓은 곳에서 둘다 제거를 해서 몇 개의 숫자가 사라졌는지 구하는 문제이다. 접근 먼저 쌓는다는 개념으로 접근했기 때문에 Stack자료구조를 사용해서 풀이를 하였다. 숫자를 가져올 곳을 정하는 moves배열을 돌면서 2차원 배열에서 해당하는 숫자를 가져와야하기 떄문에 이중 for문을 사용해서 문제를 풀이 하였다. 코드 import java.util.*; class Solution { public int solution(int[][] board, int[] moves)..
오늘은 cs스터디에서 디자인 패턴부분이 끝나고 네트워크 부분으로 넘어왔다. 디자인 패턴도 생소했지만 프로그래밍언어라서 조금 익숙한 부분도 있었지만 네트워크 부분은 좀 더 생소한 개념일 수도 있을 것 같다는 마음이 들었다. 이번에 내가 발표를 맡은 부분은 네트워크 토폴로지와 병목 현상에 대한 부분이었다. 발표내용을 정리한 것을 적어보겠다. 네트워크 토폴로지란? 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미 트리 토폴로지 계층형 토폴로지라고 하며 트리 형태로 배치한 네트워크 구성을 말한다. 노드의 추가, 삭제가 용이 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다 버스 토폴로지 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성(LAN) 설치 ..
오늘은 cs스터디에서 발표할 객체지향 프로그래밍에 대해 조사한 내용을 정리해보겠다. 객체지향 프로그래밍(OOP)이란? 객체지향 프로그래밍이란 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식. 객체 내부에 자료형(필드)와 함수(메서드)가 같이 존재 장단점 장점 재사용성: 객체를 재사용할 수 있기 때문에 코드의 재사용성이 높아집니다. 객체를 만들고 이를 사용하는 클래스에서 계속 재사용할 수 있습니다. 코드의 가독성: 클래스와 객체를 이용하면 함수와 변수 등을 그룹화하여 구조화할 수 있어, 코드를 쉽게 이해하고 디버그할 수 있습니다. 유지 보수성: 객체지향 프로그래밍은 변경이 필요한 경우 해당 객체만 수정하면 되므로 유지 보수가 쉽습니다.캡..
오늘은 스터디에서 공부한 팩토리 (메서드) 패턴에 대해 정리해보겠다. 우선 디자인 패턴의 3가지 분류에 대해 정리하면 3가지 패턴의 목적을 이해하기! #생성 패턴 (Creational) : 객체의 생성 방식 결정예) DBConnection을 관리하는 Instance를 하나만 만들 수 있도록 제한하여, 불필요한 연결을 막음. Class-creational patterns, Object-creational patterns. 예) DBConnection을 관리하는 Instance를 하나만 만들 수 있도록 제한하여, 불필요한 연결을 막음. #구조 패턴 (Structural) : 객체간의 관계를 조직 예) 2개의 인터페이스가 서로 호환이 되지 않을 때, 둘을 연결해주기 위해서 새로운 클래스를 만들어서 연결시킬 수..
오늘은 프로그래머스 귤고르기 문제를 풀었다. https://school.programmers.co.kr/learn/courses/30/lessons/138476 어제 푼 문제와 비슷하게 Map을 사용하는 문제였다. import java.util.*; class Solution { public int solution(int k, int[] tangerine) { int answer = 0; Map m = new HashMap(); for(int i : tangerine) { m.put(i, m.getOrDefault(i, 0) + 1); } List li = new ArrayList(m.values()); Collections.sort(li, Collections.reverseOrder()); int te..