본문 바로가기

Programming

(71)
[블록체인-5] 이더리움(Ethereum) / 스마트 컨트랙트(Smart contract) / EVM 📍 이더리움(Ethereum)이란? - 암호화폐의 대장인 비트코인과 더불어 코인계를 이끌어가는 양대산맥이 바로 '이더리움'이다. 이더리움은 비트코인을 기반으로 만든 가장 대표적인 알트코인으로서, '비트코인 2.0'이라고도 부른다. - 이더리움은 비트코인과 비슷한 전자화폐의 기능과 더불어 솔리디티(Solidity) 등의 언어를 이용해 스마트 계약을 작성함으로 여러 분야에 접목할 수 있다는 특징이 있다. - 이더리움은 블록체인 기술을 기반으로 스마트 계약 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이다. '이더리움'은 플랫폼이고, '이더'가 암호화폐이지만 일반적으로 구별하지 않고 '이더리움'을 암호화폐의 이름으로 사용하기도 한다. - 이더리움은 솔리디티라는 언어를 통해 스마트 컨트랙트를 위한 코드를 작성하고, ..
[블록체인-4] 합의 알고리즘 / 작업증명(PoW) / 지분증명(PoS) / 위임지분증명(DPoS) 📍 합의 알고리즘(Consensus algorithm)이란? - 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘이다. - 블록체인은 통일된 의사결정을 하는 중앙 관리자가 존재하지 않는다. 이 때문에 참여자의 의견 일치를 합리적이고 효율적으로 하기 위해 다양한 알고리즘이 개발되었다. - 블록체인 데이터는 수많은 노드에 보관되고, 각 노드들은 블록에 기록된 데이터가 위조되지 않은 원본이라는 것을 합의하는 과정을 필요로 한다. 특정 노드가 악의를 품고 데이터를 조작하는 등의 악의적인 상황이 발생하더라도 다수의 노드들이 상호검증을 거쳐 올바른 블록 생성을 이끌어내기 위한 알고리즘이 '합의 알고리즘'이다. - 가장 일반적인 합의 알고리즘 유형으로는 '작업 증명'과 '지분 증명'이 있다. 📍 작업 ..
[블록체인-3] 분산원장기술 / 채굴 📍 분산원장기술(Distributed Ledger Technology)이란? * 분산 = 광범위하게 널리 분포되어 있음 * 원장 = 거래내역이 기록된 장부 - 거래 정보를 기록한 원장을 특정 기관의 중앙화된 서버가 아닌 분산된 네트워크에서 참여자들이 공동으로 기록하고 관리하는 기술이다. - 분산원장은 블록체인의 핵심이다. - 분산원장의 장점은 중앙집중형에 비해 높은 효율성, 시스템 안정성, 보안성, 투명성이다. 중앙집중형은 인증과 거래 증명을 위해 여러가지 중간 매개체와 인증기관이 필요하다. 하지만 분산원장은 사용자가 직접 거래내역을 공유하기 때문에 중앙화된 시스템을 운영하는데 필요한 비용이 줄어든다는 장점이 있다. 또한 거래 정보가 분산되어 저장되기 때문에 해킹과 위조의 위험성이 낮아진다. 📍 채굴(M..
[블록체인-2] 블록체인은 비트코인과 같을까? 비트코인은 왜 만들어졌을까? 📍 블록체인은 비트코인일까? 결론부터 말하면 블록체인은 비트코인이 아니다. 비트코인은 블록체인으로 만든 하나의 성공적인 사례이고 블록체인이라는 개념을 세상에 알리는 데 결정적인 역할을 했다. 📍 비트코인은 왜 만들어졌을까? 블록체인을 제대로 알기 위해서는 비트코인의 탄생 배경을 이해하는 것이 중요하다. 비트코인은 2008년 미국발 금융위기를 배경으로 등장했다. 당시 미국 정부는 금융기관들의 실패로 인해 생긴 위기를 해결하기 위해 막대한 양의 달러를 찍어냈다. 이로 인해 미국 달러의 가치가 추락했고, 물가는 폭등했으며, 금리는 바닥을 쳤다. 이때 대다수의 구성원은 엄청난 손실을 입었고 자산 가치의 가장 기본적인 잣대인 화폐가 신뢰도를 잃으면서 사람들은 중앙기관의 정책이 자산에 영향을 주는 것에 불만을 가졌..
[블록체인-1] 블록체인이란? 📍 블록체인(Blockchain)이란? - 쉽게 말해 데이터베이스이다. - P2P(Peer to Peer) 네트워크를 통해서 관리되는 분산 데이터베이스의 한 형태이다. * P2P란 기존의 서버와 클라이언트 개념에서 벗어나 개인 컴퓨터들이 네트워크로 연결되어 서로 정보와 자료를 공유하는 것을 말한다. 즉, 연결된 각각의 컴퓨터가 서버이자 클라이언트 역할을 하며 정보를 공유하는 방식이다. - 정보를 담은 장부를 중앙 서버가 아닌 블록체인 네트워크에 연결된 여러 컴퓨터에 저장하는 기술이다. * 중앙서버가 아니다 = 탈중앙화 = 특정 개인이 데이터를 관리하는 것이 아니다 = 다수가 데이터를 저장, 증명하기 때문에 중앙 관리자가 필요 없다 - 특징 1) 누구나 데이터를 추가할 수 있다. 2) 데이터는 추가만 가능..
[Jenkins] CI, CD, 젠킨스에 대해 알아보자
[Git] Git-flow 전략에 대해 알아보자
[내용정리] 모바일 개발자에서 프론트엔드로 전향한 이유 - 드림코딩 엘리 평소에 좋아하는 개발자님인 '엘리'님의 직무전환 스토리를 듣고 태도에서 배울점이 많아 영상 내용을 정리하였습니다. 🙏🏻  www.youtube.com/watch?v=wD8GnE_AJQQ # 결국은 시장성 - 대학생 때부터 시스템 프로그래밍에 대한 관심이 많았음 - 삼성전자에서 근무 시, C와 C++ 임베디드 업무를 하다가 안드로이드가 나오면서 안드로이드 팀으로 반강제적으로 이동하게 됐음 - 미국으로 취업을 준비할 때도, 임베디드 및 스프링 백엔드에 관심이 있었으나 안드로이드에 대한 수요가 높아서 기둥을 세웠던 안드로이드 개발자로 취업함  # 주니어 시절- 삼성전자에서 근무 시 애플리케이션을 만든 것이 아니어서 실무경력이 부족한 편이었음 - 이를 보충하기 위해 공식사이트에서 다양한 것을 배우고, 운영체..
REST API가 뭔가요? 📍 REST : Representational State Transfer 직역하자면 대표적인 상태 전달 애플리케이션 개발의 *아키텍처 중 하나 (*아키텍처 : 애플리케이션을 설계, 제작하는데 사용하는 패턴과 기술의 총칭) 웹 애플리케이션 상에 존재하는 모든 리소스에 대해 고유의 URI를 부여한 후 HTTP Method(GET, POST, PUT, DELETE)를 이용해 리소스에 대해 *CRUD 명령을 적용 (*CRUD : Create, Read, Update, Delete의 줄임말 ) 📍 REST의 구성요소 3가지 자원 (Resource) - URI : 서버에 존재하는 데이터의 총칭. 모든 자원은 고유의 URI를 가짐 행위 (Verb) - HTTP Method : 클라이언트가 HTTP Method를 이용..
[JAVA] GC, stop-the-world, G1GC에 대해서 설명해 주세요. 📍Garbage Collector 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능 📍 Stop-the-world 가비지 컬렉터를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것 Stop-the-world가 발생하면 가비지 컬렉터를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춘다. 가비지 컬렉터 작업을 완료한 이후에 중단했던 애플리케이션 실행을 다시 시작한다. 어떤 가비지 컬렉터 알고리즘을 사용하더라도 stop-the-world는 발생한다. 대개의 경우 가비지 컬렉터 튜닝이란 stop-the-world 시간을 줄이는 것이다. 📍Young 영역(Yong Generation 영역) 새롭게 생성한 객체의 대부분이 여기에 위치한다. 대부분의 객체가 금방 접근 불가능 ..
[JAVA] ArrayList가 뭔가요? [ ArrayList ] - 배열을 좀 더 편리하게 사용할 수 있도록 java에서 제공하는 class이다. - 크기를 조정할 수 있는 배열이다. - 배열 크기를 지정하지 않으면, 초기 배열의 크기는 10이다. - 인덱스로 요소를 검색할 수 있다. - 제네릭을 지원한다. - 크기가 고정된 배열과 달리, ArrayList는 새 요소가 추가될 때 자동으로 크기를 늘린다. 그럼 ArrayList는 어떻게 배열의 크기를 조정하는 것일까? add()로 인해 사이즈가 꽉 찼을 시 현재의 1.5배를 증가시켜 새로운 배열을 생성한다. 1.5배 증가시킨 새로운 배열에 현재의 배열을 copy한다. int newCapacity = oldCapacity + (oldCapacity >> 1); is equivalent of mu..