전체 글 90

소나무 언어에 다른 기술 접목 아이디어

M -> 1 번역 후 다시 1 -> M 번역 시 머신러닝 활용 다대일로 번역 후 다시 일대다로 번역될 때 항상 동일한 실행을 보장하는 코드로 번역이 되어야 할텐데 이때 머신러닝 기술을 활용하여 적절한 번역 내용을 도출하고 번역 수행할 수 있을 것 같다. 소나무 언어의 범위 외의 Solidity 코드를 소나무 언어로 번역 시 머신러닝 활용 기존에 네트워크에 존재하는 Solidity 코드를 가져다 소나무 언어로 번역하고자 할 때 정의된 소나무 언어의 범위를 벗어나는 Solidity 문법이 발견될 경우 원래대로라면 번역 자체가 이뤄지지 않겠지만 여기에 머신러닝을 활용할 수 있을까? 어떻게 학습을 시켜야할지는 모르겠다. Solidity -> 소나무 언어로 번역 시 적절한 변수명 도출 Solidity는 기본적으로..

인프랩 CTO 이동욱 님과의 멘토링 후기

과학기술정보통신부에서 주최하는 디지털 청년고민해결단 온라인멘토링에 참여하여 인프런 CTO 이동욱 님 (a.k.a. 향로님) 과의 멘토링을 진행하게 되었다. 이번 멘토링을 통해 얻은 정보와 교훈, 그리고 앞으로의 다짐 등을 정리해보았다. 0. 지원 계기 예전에 한번 학과 홈페이지의 공지사항에 올라오는 여러 게시물 중 정말 해보고싶은 활동이 있었는데 지원 마감일 이후에 글을 확인하여 너무나 아쉽게 기회를 놓친 기억이 있었다. 깊이 탄식하고,, 그 이후로 하루에 꼭 한 번은 사업단 공지를 확인하는 습관이 생겼다. 이번 청년고민해결단 멘토링도 그렇게 매일 확인하던 학과 공지사항에서 발견하게 되었다. 사실 몇 달전까지만 해도 대학원 준비를 하고 있었고 서버 개발자로 진로를 정하게 된 건 정말 최근의 일이라 아직 ..

solidity contract 분석 및 한글 계약서와의 비교

한글 프로그래밍 언어인 '소나무 언어'의 설계 과정에서 solidity 계약서에서 어떠한 문법이 주로 사용되며, 한글 언어로 변환되면서 solidity 언어의 어떤 부분이 간소화될 수 있을지 등을 도출하기 위해 이더리움 네트워크에 배포되어 있는 기존 계약서를 분석하고 한글 계약서와의 비교를 수행했다. 1. solidity contract 분석 1-1. 중고거래 contract contract escrow { // contract 생성자 constructor(uint _price) public payable { seller = msg.sender; // contract를 생성한 사람을 seller로 지정 price = _price; // contract 생성 시 물건 값을 받아 price에 저장 pay =..

자바 기초 여러가지 정리

개인적으로 맨날 쓰는데 맨날 헷갈리는 자바 기초 문법이나 특징 등등을 정리해봤습니다. 이 글은 제가 또 새롭게 헷갈리는 게 나오는 대로(?) 계속해서 업데이트할 예정입니다..😂 기본 자료형 vs 참조 자료형 기본 변수는 메모리에 값 자체를 저장하지만 참조 변수는 참조하는 객체의 주소를 메모리(변수)에 저장한다. JAVA에서 char 크기 c와 다르게 java에서는 char이 2byte로 저장된다. 서식 문자 %d - 10진수 → %Xd - 오른쪽 정렬 + 최소 X칸 만큼 공백 유지 %o - 8진수 %x - 16진수 %f - 실수 → %.Xf - 소수점 아래 X자리까지 출력 %c, %s - 문자, 문자열 조건문 (삼항 연산자) 축약 표현 조건문 : true ? false JAVA 배열의 특징 자바에서 배열..

개발 공부/Java 2022.03.27

이해당사자 특정 및 문제 상황 정의하기

1. 중고차 거래 현재 문제 상황 중고차 거래는 개인 대 개인으로 이뤄지는 경우가 많다. 이에 따라 매물의 신뢰도가 보장 되지 못해 허위 매물, 침수 차 거래 등 거래로 인한 피해를 겪는 경우가 발생한다. 딜러는 자신이 판매하려는 차에 문제가 없다는 사실을 증명하기 어렵다. 구매자는 자신이 구매하고자 하는 차량에 하자가 없다는 사실을 확인하기 어렵다. -> 블록체인이 중개인 역할을 수행할 수 있다. 가능한 것들 중고차의 제원, 이미지, 하자 정도 등의 정보를 프로그램화 하여 블록체인 네트워크에 등록한다. 구매자는 클라이언트 프로그램을 통해 블록체인 네트워크에 접속하여 구매하고자 하는 차량의 정보를 확인하고 차량을 구매한다. 단순 중고차 거래에만 스마트 컨트렉트를 활용하지 않고 판매하려는 중고차의 제원, ..

인프런 '블록체인과 솔리디티' - 솔리디티

솔리디티 스마트 컨트렉트를 만들기 위한 언어 C++, JS, Python의 영향을 받음 EVM(Ethereum Virtual Machine)을 타겟으로 함 EVM : 이더리움 노드들이 공유하는 하나의 거대한 가상 머신 스마트 컨트렉트는 수정, 삭제가 불가한 블록체인의 특성상 신중하게 작성해야 함 하지만 이 때문에 신뢰성이 보장되는 것 remix.ethereum.org → 웹 기반 솔리디티 IDE, 테스트 및 디버깅 기능 지원 솔리디티 특징 튜링 완전한 언어 두 가지 특수한 변수를 가짐 msg.sender → 메시지를 보낼 주소 , msg.value → 메시지로 보낼 값 스마트 컨트렉트 구조 contract → class와 비슷한 개념 솔리디티 데이터 타입 문자열 → string(utf8로 인코딩), by..

인프런 '블록체인과 솔리디티' - 블록체인

블록체인 말 그대로 블록들이 연결된 체인 블록? 쉽게 이야기 하면 데이터들의 집합 이러한 블록은 모든 사용자가 동일하게 가지고 있음 이를 통해 한 사용자가 다른 데이터를 가진 블록을 가지고 있다면 해당 데이터가 틀렸음을 알 수 있다. 탈중앙화? 기존의 보안은 철저히 통제된 저장소에 제한된 인원만 접근이 가능하도록 하여 성립됨 반면 블록체인은 가능한 많은 사람들이 데이터를 가지고 있도록 하여 보안을 유지 이러한 시스템에서 칩입자가 데이터를 조작하고자 하면 수많은 사람들이 가지고 있는 블록의 데이터를 모두 수정해야 하기 때문에 보안이 유지될 수 있음 암호학을 기반으로 이러한 시스템이 설계되어 있기 때문에 블록체인을 통한 보안 시스템이 신뢰받을 수 있게 됨 머클 트리 http://wiki.hash.kr/ind..

도출된 아이디어 덧붙이기

기존에 도출된 아이디어에 추가적으로 아이디어를 덧붙여본다. 1. 순 우리말로 만든 언어 + 나무 언어 한글 프로그래밍 언어 약속에서는 함수를 약속, 클래스를 묶음 등으로 표현하는 등 예약어를 한글로 번역하여 사용함. 이에 클래스를 숲, 생성자는 씨앗, 함수는 나무, 변수 선언은 잎 등으로 비유적으로 대체하여 사용하는 아이디어를 구상함. 코드를 작성하는 것에 익숙하지 않은 사용자들이 쉽게 클래스, 함수 등의 개념을 익힐 수 있을 것으로 기대함. [숲] 사람: [잎] 나이 = 20 [잎] 성별 = "남자" [씨앗] 사람(_나이, _성별): 나이 = _나이 성별 = _성별 [나무] 나이변경 (새로운나이): 나이 = 새로운나이 2. 온점 + 반점 도입 한글의 끝맺음은 보통 . (온점)이라는 사실에 기반하여 기존..

문제 정의

영어로 된 기존의 프로그래밍 언어는 if, else, while 등 명확한 단 하나의 예약어만을 갖음. 이에 반해 한글은 하나의 단어에도 다양한 조사가 사용될 수 있기 때문에 예약어를 하나로 지정하는 것이 애매함. 프로그래밍에 익숙하지 않은 사용자들이 처음부터 프로그래밍 언어의 구조에 맞춰 코드를 작성하는 것이 어려울 수 있다고 생각함. 한국어는 명사뒤에 은_는, 이_가 등 다양한 조사가 사용되며 변경될 가능성이 있는 문자열 변수를 출력할 때 조사를 확정해서 출력문을 작성할 수 없음. 대부분 한글 프로그래밍 언어의 주된 개발 목적은 영어에 익숙하지 않은 저학년 등의 컴퓨팅적 사고 능력 향상임. 기존의 class, function, variable, constructor 과 같은 어휘를 단순 번역할 경우 ..

아이디어 도출

한글로 된 언어 ‘ㄱ언어’를 개선하고 발전시키기 위한 아이디어를 도출함. 1. 하나의 기능에 여러 예약어 대응 영어로 된 기존의 프로그래밍 언어는 if, else, while 등 명확한 단 하나의 예약어만을 갖음. 이에 반해 한글은 하나의 단어에도 다양한 조사가 사용될 수 있기 때문에 예약어를 하나로 지정하는 것이 애매함. 따라서 하나의 기능에 해당하는 예약어를 여러 종류를 두어 보다 더 자유롭고 자연스럽게 코드를 작성할 수 있도록 함. 아래의 예시는 같은 기능을 수행하는 서로 다른 코드들의 예시를 나타냄. 만약에 [변수]가 [값] 이면 ~~~ --- 만약 [변수]가 [값] 이라면 ~~~ --- 만약 [변수]이 [값] 라면 ~~~ 변수 = 2 만약 [변수]가 사실이면 ~~~ --- 만약 [변수]가 참이면..