목록2024/02 (16)
Skipalong's tistory
오늘은 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..
이번주는 노로바이러스에 걸려서 TIL 도 못쓰고 내내 몸져누워있었다. 오늘부터는 몸이 좀 나아져서 팀원들과 스터디를 재개했는데 알고리즘 풀이를 시작하였다. 오늘 푼 문제 중에 프로그래머스 추억점수라는 문제가 있었다. https://school.programmers.co.kr/learn/courses/30/lessons/138476 이 전에는 class Solution { public int[] solution(String[] name, int[] yearning, String[][] photo) { int[] answer = new int[photo.length]; for(int i=0; i
오늘은 우리 프로젝트에서 email인증과 캐시에 사용했던redis에 대해 정리해보겠다. 1. redis란? redis란 'Remote Dictionary Server'의 약자로, 고성능의 Key-Value 스토어입니다. 이는 메모리 기반의 데이터 구조 서버로서, 데이터베이스, 캐시, 브로커(Pub/Sub모델을 통해 실시간 채팅, 이벤트알림 등) 등의 역할을 수행할 수 있다. 빠른 응답 시간과 높은 확장성을 필요로 하는 다양한 서비스에서 널리 사용 2. redis의 collection redis 는 이렇게 다양한 자료 구조를 지원한다. 3. SingleThread redis는 싱글스레드를 사용하여 동시성문제가 생기지 않고 작업을 들어온 순서대로 하나씩 처리한다. 또 Redis 4.0부터는 'Redis Mo..