본문 바로가기

전체 글

(113)
[Java] 연산자 우선순위, 자료형, 기타 등등(24.05.20) 연산자 우선순위단항, 이항, 삼항 연산자 순으로 우선순위를 가짐.‘++’ ← ‘a + b’ ← ‘a ? b : c‘산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가짐.산술 연산자( + , - , * , / , % )비교 연산자( 논리 연산자( && , || , & , | , ^ , ! )대입 연산자( = , += , -= , *= , /= , %= )단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽임.복잡한 연산식에는 괄호 ()를 사용해서 우선순위를 정함. Scannerjava.util 패키지에 포함되어 있어 java.util을 import를 해줘야 사용할 수 있다.기본적인 데이터 타입을 모두 입력받을 수 있다.토큰(공백,개행,탭)을 기준으로 데이터를 입력받는다.Scanner .. 2024. 5. 20. 21:15
자바는 어떻게 파일경로를 보고 File을 찾아낼까? 코딩테스트를 수행하는 중 File을 다루는 과제를 만나게 되었다. 기본적인 개념이기 때문에, 쉽게 해결될 것이라고 생각했지만... 그 기본적인 것을 제대로 이해하지 못하고, 파일 경로 설정을 해멨기 때문에... 자바에서 String 타입의 파일 경로가 주어졌을 때 어떻게 파일을 탐색하는지 알아보고자 한다. 환경구성- java 17- window10- intellij  String 타입의 파일경로가 주어졌을 때파일을 탐색하는 과정을 이해하기 위해, 아래의 간단한 코드를 디버깅할 것이다.public class Main { public static void main(String[] args) throws IOException { File file = new File("test... 2024. 5. 17. 20:20
24.05.12 현시점, 한국은행 CBDC 진행현황 블록체인이란?(참고자료 : Ground X - 유튜브 블록체인 강의)블록체인의 정의와 구조정보를 블록이라고 하는 단위로 저장하여 저장된 블록들을 체인형태로 묶은 저장기술을 말한다. 자료구조의 연결리스트와 유사하다. 연결리스트에서는 특정 노드의 다음 노드가 누구인지 알기 위해 다음 노드의 주소값을 특정 노드가 가지고 있다. 그러나, 블록체인에서 블록은 해시 함수를 이용해 다음 블록이 어떤 블록인지 알아낸다.블록체인의 합의(Consensus) PoWPoS  BFT-variants제안자격 취득 방법계산이 어려운 문제를 풀 것플랫폼 토큰을 보유한 기간에 따라 결정적으로 또는 확률적으로 뽑힐 것정해진 순서 또는 정해진 확률에 의해 뽑힐 것네트워크 참여 제한없음없거나 낮음높음합의에 필요한 연산량높음낮음낮음위협전체 .. 2024. 5. 12. 17:51
금융보안원 - 2024년 디지털금융 및 사이버보안 이슈 정리 참고자료[보도자료] 금융보안원이 전망하는 2024년 디지털금융 및 사이버보안 이슈(23.11.2.) 금융보안원금융보안원이 전망하는 2024년 디지털금융 및 사이버보안 이슈 기획부 2023-11-01www.fsec.or.kr내용 : 금융회사 디지털금융・보안업무 종사자, 글로벌 연구기관, 산・학계 전문가 등 약 300여명의 의견을 수렴 확보한 이슈 9가지  1. 자율보안체계 전환과거 정보보안 규제는 [전자금융감독규정]에 열거된 “규칙”을 이행했는지를 위주로 수행됨. 그러나 이는 상황에 따른 유연한 대응을 어렵게 하고 오히려 규정상 의무만 다하면 면책된다는 인식으로 인해 금융회사의 소극적 대응을 야기한다는 지적이 있었음 .이에, 금융위원회는 금융보안규제를 규칙이 아닌 “목표·원칙” 중심으로 합리화하여 금융회사.. 2024. 5. 12. 17:28
[JSCODE] 모의면접으로 학습하는 CS 스터디 후기 이 글에서 JSCODE에서 진행했던 '모의면접으로 학습하는 CS 스터디' 후기를 작성하고자 합니다. 저는 '데이터베이스'를 스터디하였으면, 5주 과정이였습니다. 참여계기회사에서 근무하면서 항상 DB에 대한 전공지식이 부족하다는 것을 느꼈습니다. 그래서 이 부분에 대한 지식을 쌓고 싶었습니다. 혼자서 공부하기 보다는 모의면접을 통해 학습한다면, 학습과 피드백이라는 두마리 토끼를 잡을 수 있겠다고 판단하여, 참여하게 되었습니다. 성장한 점DB에 대해서 새로운 지식들을 쌓았다는 점이 성장한 점인 것 같습니다. 인덱스의 원리는 무엇이며, 어떻게 쿼리문을 작성해야지 성늣이 향상되는가에 대한 궁금함이 있었는데요, 스터디를 통해 이 부분을 알게 되었다는 점이 가장큰 성취였다고 생각합니다. 또한 모의면접에서 공통적으로.. 2024. 2. 19. 13:56
[WebRTC] WebRTC 프로토콜 & API 용어정리 프로토콜 WebRTC란? 웹 브라우저 간에 실시간 음성, 영상 및 데이터 통신을 가능하게 하는 오픈 소스 프로젝트 P2P를 이용한 기술로, 서버 없이 클라이언트와 클라이언트가 직접적으로 연결하여 통신 클라이언트 간 직접 연결을 통해, 더 빠른 연결 속도와 더 작은 지연 시간을 제공 API는 JavaScript로 구현 RFC 8825 : https://datatracker.ietf.org/doc/html/rfc8825#name-terminology SDP 세션을 초기화하고 미디어 통신을 위한 세션 파라미터를 교환하는 데 사용되는 프로토콜 세션을 설명하고 제안하는 메타데이터 형식으로, 웹 애플리케이션에서 피어 간에 미디어 통신을 설정하고 제어하는 데 사용 미디어 유형(예: 오디오, 비디오), 코덱 정보, I.. 2024. 2. 14. 14:31
[번역] WebRTC For The Curios 이 글은 WebRTC를 연구하기 위해, 아래 문서를 번역한 것입니다. 카카오 기술 블로그 에서 알게된 글이며, "WebRTC의 이론을 상세하게 공부하기 좋은 문서"라고 하여, 번역하게 되었습니다. 번역 중, 이해를 위한 제 사견은 ( ) 괄호안에 넣어두었습니다. 이해되지 않은 부분은 번역하지 않고 원문(영어)을 그대로 사용하였습니다. Introduction webrtcforthecurious.com WebRTC For The Curios 이 책은 WebRTC 개발진이 힘들게 얻어낸 지식들을 공유하기 위해 만들어진 것입니다. 'WebRTC For The Curios'는 더 많이 공부하고자 하는 사람들을 위해 만들어진 오픈소스 책입니다. 이 책은 추상적인 개념에 안주하지 않습니다.(WebRTC의 어려운 개념.. 2024. 2. 12. 16:24
[DB] 정규화 이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다. 1. 이상현상 이상 현상이란? 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입,수정,삭제 연산을 수행할 때 부작용들이 발생할 수 있다. 이러한 부작용을 이상 현상이라고 한다. 이상 현상을 제거해가면서 데이터베이스를 올바르게 설계해 나가는 과정이 정규화이다. 삽입 이상 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 위 테이블에서 (고객아이디, 이벤트번호)가 기본키이기 때문에, melon이라는 고객의 데이터를 위 테이블에 삽입하려면, 반드시 이벤트번호가 있어야 한다. 따라서, 이벤트 등록이 되지 않은 고객은 위 테이블에 삽입될 수 없다. 갱신 이상 중복 튜플 중 일부만 변경하여 .. 2024. 2. 1. 15:34
[HTTP] URL 인코딩, 또는 Percent-encoding Java-Spring 환경에서 URL을 다루다가, URL 인코딩이 두번 중복해서 수행되는 문제를 접하고, URL 인코딩이 무엇인지 제대로 파헤치기 위해 이 글을 작성합니다. URL 인코딩이란, URI에서 구분자로 사용되는 예약어들과, 예약어와 동일한 문자이지만 단순한 문자로서 사용되는 것들을 구분하여, 혼동을 없애기 위해 도입된 Spec이다. 예약어와 동일하지만 구분자 역할을 수행하지 않는 문자를 ‘%’ + ‘16진수’ + ‘16진수’ 형태( ex. %25 )로 인코딩한다. URI에서는 특수한 목적을 위해 사용될 예약어들을 정의해 두었다. 만약 URI 컴포넌트에서 예약어들이 포함될 경우, 해당 문자가 URI 컴포넌트들을 구분하는 ‘구분자’의 역할을 하는 녀석인지, 아니면 단순한 문자인지를 알 수가 없다... 2024. 1. 30. 00:49
[DB] Real MySQL 8.0 - 8. 인덱스 & B-tree 이 글은 Real MySQL 8.0 책을 읽고 정리한 것입니다. Real MySQL 8.0 1권 《Real MySQL》을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로 수록했다. www.aladin.co.kr 데이터베이스의 성능 튜닝은 어떻게 디스크 I/O를 줄이느냐가 관건일 때가 상당히 많다. 따라서, 이 장의 앞부분에서는 먼저 ‘랜덤 I/O’ 와 ‘순차 I/O’에 대해 설명하고자 한다. 8.1 디스크 읽기 방식 8.1.1 HDD와 SDD SDD는기존 하드 디스크 드라이브에서 데이터 저장용 플래터(원판)를 제거하고 그 대신 ‘플래시 메모리’를 장착하고 있다. DRAM보다.. 2024. 1. 23. 16:36
[DB] SQL - JOIN 이 글은 데이터베이스 스터디 중 학습한 내용을 정리한 것입니다. JOIN 수행 원리 조인이란 두 개 이상의 테이블을 하나의 집합으로 만드는 연산이다. JOIN 절 뿐만 아니라, SQL문에서 FROM절에 두 개 이상의 테이블이 나열된 경우에도 조인이 수행된다. 다만, 여러개의 테이블에 대해 JOIN이 수행되더라도, JOIN은 실제 동작할 때 두개의 테이블을 대상으로 수행된다. 여러개의 테이블을 다룰때는 연쇄적으로 JOIN이 수행되는 것이다. 조인 기법은 여러가지가 존재하는 데, 대표적으로 NL JOIN, Hash JOIN, Sort Merge JOIN이 있다. 1. NL JOIN(Nested Loop JOIN) NL JOIN은 프로그래밍에서 사용하는 FOR 반복문을 중첩으로 사용한 것과 유사하다. 반복문의.. 2024. 1. 23. 11:28
[DB] Real MySQL 8.0 - 4.2 InnoDB 스토리지 엔진 아키텍처 이 글은 Real MySQL 8.0 책을 읽고 정리한 것입니다. Real MySQL 8.0 1권 《Real MySQL》을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로 수록했다. www.aladin.co.kr 위 이미지는 InnoDB의 구조를 나타낸 그림이다. MySQL 8.0 기준으로, InnoDB가 가장 성능이 뛰어난 스토리지 엔진이다. MySQL의 스토리지 엔진 중 거의 유일하게 레코드 락을 지원하며, 이러한 장점 덕분에 높은 동시성 처리가 가능하다. (MyISAM은 테이블 락을 지원한다.) MySQL :: MySQL 8.0 Reference Manual :: 8.1.. 2024. 1. 22. 22:05
[네트워크] 컴퓨터 네트워크와 기본 장치들 이 글은 '컴퓨터 네트워킹 - 하향식 접근' 도서를 학습하며 정리한 것입니다. 컴퓨터 네트워킹 하향식 접근 컴퓨터 네트워킹 하향식 접근 www.aladin.co.kr 컴퓨터 네트워크란 무엇인가? 호스트 혹은 End System으로 구성된 네트워크를 의미한다. 컴퓨터 네트워크는 ‘인터넷’으로 이해할 수 있는데, 구성요소의 관점에서 본 인터넷과 분산 어플리케이션을 지원하기 위한 인프라의 관점으로 본 인터넷으로 구분할 수 있다. 구성요소의 관점에서, 컴퓨터 네트워크는 다양한 시스템들로 구성되어있다. End point에서는 ‘통신 링크’와 ‘스위치’의 연결로 네트워크가 구성된다. 종단 시스템과 다른 종단 시스템이 이어지기 위해서는 ISP를 거쳐야 한다. ISP란 SKT, KT, LG U+와 같은 회사들을 지칭한.. 2024. 1. 22. 19:48
[OS] I/O 장치 - 폴링 & 인터럽트 & DMA 이 글은 '운영체제 아주 쉬운 세가지 이야기' 책을 학습하고 정리한 내용입니다. 운영체제 아주 쉬운 세 가지 이야기 운영체제 아주 쉬운 세 가지 이야기 www.aladin.co.kr 위 이미지는 일반적인 시스템 구조를 나타낸 것이다. RAM과 GPU와 같이 고속 통신을 요구하는 장치는 CPU와 근접해 있고, HDD와 그외 다른 장치들을 상대적으로 CPU로 부터 멀리 떨어져있다. 이런 계층적인 구조를 갖는 이유는 ‘비용’과 장치간의 ‘물리적인 거리’를 고려하여 등장한 개념이다. 버스가 고속화되려면 더 짧아져야 되지만, 고속의 메모리 버스는 여러 장치를 수용할 수 없다(또한, 비싸다). 이러한 이유로, 고성능 장치는 CPU와 가깝게 두고, 느린 성능의 장치들을 그보다 멀리 배치한다. 36. 2 표준 장치 가.. 2024. 1. 22. 17:43