직렬화(Serialization)
·
Language/Java
직렬화(Serialization)란?각자 PC의 OS마다 서로 다른 가상 메모리 주소를 갖기 때문에, `Referece Type`의 데이터들은 인스턴스를 전달할 수 없다.이런 문제를 해결하기 위해선 주소값이 아닌 `Byte` 형태로 직렬화된 객체 데이터를 전달해야 한다.자바에서 직렬화(Serialization)란 객체를 바이트 스트림으로 변환하여 파일, 데이터베이스, 네트워크 등을 통해 저장하거나 전송할 수 있게하는 과정이다.직렬화된 객체는 모두 파일 저장이나 네트워크 전송 시 파싱이 가능한 기본형(Primitve Type)이 되며, 역직렬화(Deserialization) 과정을 통해 원래 객체로 복원할 수 있다.   직렬화를 하는 경우는 주로 다음과 같다.객체 지속성JVM 메모리에 있는 객체를 영속화 ..
Network(1) - VPC (Subnet, NACL, NAT Gateway)
·
Devops/Naver Cloud
모든 자료는 온라인으로 제공되는 Naver Cloud의 공인교육과정을 참고하였으며,Naver Cloud Professional 자격증을 준비하시는 분들께 조금이나마 도움이 될까하여 정리해두었던 내용을 공유합니다.2023년에 작성된 내용이며, VPC Platform 기반의 강의 내용을 정리한 것이니 참고 바랍니다.   VPC (Virtual Private Cloud)클라우드상 논리적으로 격리된 고객 전용 네트워크 공간(계정 당 최대 3개의 VPC 생성 가능)IP 주소 범위10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 중에서 선택(*RFC1918)10.0.0.0~10.255.255.255172.16.0.0~172.31.255.255192.168.0.0~192.168.255.255..
동기화(synchronization)와 락(Lock)
·
Language/Java
동기화(synchronization)와 락(Lock)Java에서 동기화는 여러 스레드가 공유 자원에 동시 접근할 때 발생할수 있는 문제를 방지하는데 사용된다.Lock은 동기화를 위한 방법 중 하나로, 데이터의 일관성과 무결성을 유지할수 있다. Lock 의 목적상호 배제(Mutual Exclusion) : 한번에 하나의 스레드만 자원에 접근할 수 있도록 보장교착 상태(Deadlock) 방지 : 올바른 락 획득 순서를 유지하여 교착상태 방지경쟁 상태 방지 : 여러 스레드가 동시에 자원에 접근하여 발생하는 예기치 않은 결과를 방지    고유 락(Intrinsic Lock)Java에서 모든 객체는 하나의 고유 락을 가지고 있다.이는`synchronized` 키워드를 사용할 때 자동으로 사용된다.public cl..
[백준/Gold III] 파티 - 1238
·
코딩 테스트 정복기/백준
[Gold III] 파티 - 1238문제 링크분류데이크스트라, 그래프 이론, 최단 경로문제 설명N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다.어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다.각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다.이 도로들은 단방향이기 때문에 아마 그들이 오고 가는 길이 다를지도 모른다. N명의 학생들 중 오고 가는데 가장 많은 시간을 소비하는 학생은 누구일지 구하여라.입력첫째 줄에 N(1 ≤ N ≤ 1,..
Storage(3) - Backup
·
Devops/Naver Cloud
모든 자료는 온라인으로 제공되는 Naver Cloud의 공인교육과정을 참고하였으며,Naver Cloud Professional 자격증을 준비하시는 분들께 조금이나마 도움이 될까하여 정리해두었던 내용을 공유합니다.2023년에 작성된 내용이며, VPC Platform 기반의 강의 내용을 정리한 것이니 참고 바랍니다.  Backup 서비스?서버 내 파일 및 Preinstall DB에 대한 백업 설정최소 7일~ 최대 52주까지 백업 파일 보관 가능소산 및 존 분산 가능콘솔에서 Storage 카테고리 내 Backup 에서 신청 가능  백업 방식Full Backup모든 데이터를 찍어서 백업 파일로 보관하는 것장점 : 생성일 기준으로 리스토어가 빠르고 간편단점 : 백업 공간이 매우 커짐 증분 Backup한번 full..
[코딩테스트 합격자 되기(Java)] 문제 51. 정렬이 완료된 두 배열 합치기★
·
코딩 테스트 정복기/기타
문제이미 정렬이 완료되어 있는 두배열 arr1, arr2을 받아 병합정렬하는 Solution()함수를 구현하세요. 제약조건 arr1과 arr2는 각각 길이가 1 이상 100, 000 이하 입니다.• arr1과ar r2는 각각오름차순으로 정렬되어있습니다.  입출력 예arr1arr2result[1,2,3][4,5,6][1,2,3,4,5,6][1,3,5][2,4,6][1,2,3,4,5,6]풀이 및 코드병합정렬이므로, 이미 정렬 된 arr1과 arr2를 index0부터 값을 비교하여 채워넣으면 된다. import java.io.*;import java.util.*;public class Main { private static long bfs(int n, int target){ if(n == t..
Java의 스레드(Thread)
·
Language/Java
Java의 스레드(Thread)스레드(Thread)는 Java 프로그램에서 병렬 처리를 수행하기 위한 경량 프로세스이다.Java는 멀티 스레딩을 지원하여 동시에 여러 작업을 수행할 수 있게 한다.이는 CPU 활용도를 높이고, 응답성을 향상시키는데 유용하다.일반적인 자바 애플리케이션은 하나의 메인 스레드로 시작하지만, 여러 작업을 동시에 처리하기 위해서는 추가적인 스레드가 필요하다. 특징경량 프로세스스레드 프로세스 내에서 실행되며, 동일한 메모리 공간을 공유한다.따라서 스레드 간 통신이 효율적이다. 동시성여러 스레드가 동시에 실행되면서 멀티태스킹을 가능하게 한다.상호작용스레드는 동일한 메모리 공간으로 공유하므로, 서로 데이터를 주고받을 수 있다. 운영체제 지원Java 스레드는 운영체제의 스레드 관리 기능을..
Storage(2)- Naver Cloud의 Storage 서비스 (Object Storage, Archive Storage, Nas)
·
Devops/Naver Cloud
모든 자료는 온라인으로 제공되는 Naver Cloud의 공인교육과정을 참고하였으며,Naver Cloud Professional 자격증을 준비하시는 분들께 조금이나마 도움이 될까하여 정리해두었던 내용을 공유합니다.2023년에 작성된 내용이며, VPC Platform 기반의 강의 내용을 정리한 것이니 참고 바랍니다. Object Storage 인터넷상에 원하는 데이터를 저장하고 사용할 수 있도록 구축된 object storage 객체 기반→ 오브젝트 스토리지에 저장된 파일이나 데이터들은 하나의 오브젝트라고 표현. 무제한 파일 저장 스토리지. 용량 제한 X 콘솔, RESTful API, SDK 등의 다양한 방법으로 오브젝트들을 관리하고, 저장된 파일은 각 파일마다 고유한 접근 UR..
[프로그래머스/level 2] 피로도 - 87946
·
코딩 테스트 정복기/프로그래머스
[level 2] 피로도 - 87946문제 링크구분코딩테스트 연습 > 완전탐색문제 설명XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다.이 게임에는 하루에 ..