반응형

Computer Science 18

Singleton pattern | 싱글톤패턴

목차 어떤 상황에서 쓰일까? 시스템 런타임, 환경셋팅정보 등의 객체가 여러개 생성되면 어떻게 될까?? 여기저기서 각기 다른 셋팅정보를 가지고 있을 수 있게되고, 동일한 설정값이라면 중복된 만큼 메모리를 차지하고 있게된다. 셋팅정보의 인스턴스는 오직 하나만 존재해야한다. 이럴때 사용되는 것이 싱글톤 패턴이다. 싱글톤 패턴이란? 인스턴스를 오직 하나만 제공하는 클래스를 말한다 하나의 인스턴스를 여러 곳에서 공유하여 사용한다. (공유하는 만큼 동시성 문제도 고려해야한다!) 장점 - new가 아닌 static한 인스턴스를 생성하여 고정된 메모리 영역을 가지게된다. 메모리 낭비를 방지할 수 있다 - 싱글톤 인스턴스는 전역으로 만들어지기 때문에, 여러 곳에서 데이터를 공유할 수 있다. - 인스턴스의 2번째 접근부터..

Computer Science 2022.07.29

운영체제 개요

목차 운영체제란? 컴퓨터 하드웨어와 각종 소프트웨어(포토샵, 크롬, 메모장... 등)를 연결하는 "소프트웨어(운영체제)" 컴퓨터 시스템의 자원(CPU, Memory 등)을 효율적으로 관리하는데에 목적이 있다. 컴퓨터에 전원을 켜면 부팅이 일어난다. 부팅은 다시말해 운영체제가 메모리에 올라가서 실행된다는 것이다. 운영체제는 컴퓨터의 전원이 꺼질때까지 메모리에서 실행되는 프로그램이다. 좁은의미의 운영체제 (= 커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 넓은의미의 운영체제 : 커널 뿐 아니라 각종 주변 시스템 유틸리티(ex. 파일복사, 삭제...등)를 포함한 개념 운영체제의 분류 동시 작업 가능 여부 - 단일 작업(single tasking) : 한번에 하나의 작업만 처리. (ex. dos) ..

Computer Science 2022.03.25

프로세스? 스레드?

목차 프로세스? "현재 실행중인" 프로그램 단일 프로세스 : 한번에 하나의 프로그램만 실행된다. 단점 : 크롬을 사용하다가 카카오톡을 사용하려면 크롬을 종료해야한다. 멀티 프로세스 : 여러 프로그램을 번갈아가면서 처리하자 (시간제한 없음, 아직은 동시처리 아님) 여러 프로그램을 메모리에 올려서 동시에 사용할 수 있도록 하였다. 아무래도 CPU의 처리속도가 빠르다보니 번갈아가면서 처리하는 것이 우리 눈에는 "동시에" 처리되는 것으로 보이지만 실제로 "동시에"는 아니다! 단일 프로세스의 단점(크롬을 사용하다가 카카오톡을 사용하려면 크롬을 종료해야한다)을 개선했다. 멀티 프로세스의 단점 : 앞선 프로세스의 CPU사용시간이 길어지면 다른 프로세스는 계속 대기해야한다.. 멀티태스킹 : 여러 프로그램을 번갈아가면서..

Computer Science 2022.02.17

동적계획법 DP 구현방법 ( + [백준] 11050 이항계수 문제풀이)

11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net + 이항계수? 경우의 수를 계산할 때 사용한다. 결론부터 말하면 아래와 같이 팩토리얼로 계산할 수 있다. 팩토리얼 재귀함수로 풀어보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = ne..

Computer Science 2022.02.13

DFS, BFS 구현방법 ( + [백준] 2606 바이러스 문제풀이)

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net DFS (Depth-First Search) DFS는 깊이 우선 탐색이다. 아래 그림처럼 한 곳만 깊게~ 계속 파다가 끝이 나오면, 다른 곳으로 가서 다시 깊게~ 계속 파는 것이다. - 단순 검색은 BFS보다 느리다 - 모든 곳을 방문할 때 자주 사용된다. - 재귀함수를 사용하여 다음 탐색 노드(현재 노드와 인접하고, 방문한 적이 없는 노드)로 이동한다. BFS (Breadth-First Search)..

Computer Science 2022.02.12

[JWT] JSON Web Token의 구조, 장점, 한계

목차 JWT을 알아보기 전 사전지식 Cookie와 Session, 그리고 Token 목차 HTTP의 특징 HTTP는 비연결성(Connectionless)과 무상태(Stateless)라는 특징이 있다. 클라이언트는 서버에게 Request를 보내면서 서버와 연결되는데 이때 서버가 클라이언트에게 Response하면서 맺었던 lotuus.tistory.com 정보보안의 3대 요소(기밀성, 무결성, 가용성)와 RSA 암호화 방식 정보보안의 3대 요소 기밀성 Confidentiality : 허가받은 자만 정보에 접근할 수 있다. 무결성 Integrity : 허가받은 자만 변경해야한다. 가용성 Availability : 허가받은 자면 정보를 사용할 수 있어야 한다. lotuus.tistory.com JWT : Jso..

Computer Science 2022.02.03

정보보안의 3대 요소(기밀성, 무결성, 가용성)와 RSA 암호화 방식

정보보안의 3대 요소 기밀성 Confidentiality : 허가받은 자만 정보에 접근할 수 있다. 무결성 Integrity : 허가받은 자만 변경해야한다. 가용성 Availability : 허가받은 자면 정보를 사용할 수 있어야 한다. A는 한가지 방법을 생각해낸다. 바로 암호화해서 보내자! 엇 근데... RSA 암호화 방식 위의 문제들을 해결하기 위해 RSA 암호화 방식이 등장한다. 현재 가장 많이 사용되는 암호화 방식이다. RSA 암호화 방식에는 공개키(Public Key)와 개인키(Private Key)가 존재한다. 공개키는 누구나 볼 수 있는 암호이다. (인스타에 올리는 사진처럼) 개인키는 나만 알고있는 암호이다. (개인 금고에 있는 물건처럼) 공개키로 암호화 한 것은 개인키로 열 수 있다. =..

Computer Science 2022.02.02

[객체 생성 패턴] 점층적 생성자 패턴 → 자바빈 패턴 → Builder 패턴, lombok @Builder 사용방법 및 주의점

목차 객체를 생성하는 방법에는 3가지 패턴이 있다. 점층적 생성자 패턴 : 파라미터 별로 생성자를 만든다 public class Member { private Long id; private String name; private int age; private Team team; public Member(Long id) { this.id = id; } public Member(Long id, String name) { this.id = id; this.name = name; } public Member(Long id, String name, int age) { this.id = id; this.name = name; this.age = age; } public Member(Long id, String nam..

Computer Science 2022.01.29
반응형