Hi(58)
-
4th Industrial Revolution
4차 산업혁명이란 첨단 정보통신 기술(AI, IOT, BigData, Mobile) + 경제,사회 전반에 융합 → 혁신적 변화 나타나는 차세대 산업혁명 4차 산업혁명의 핵심 개념 3가지 초연결 사람과 사물이 물리적,가상적 공간에 경계없이 서로 유기적 연결되어 소통 및 상호작용하는 만물인터넷 인프라 초지능 모든 산업분야에 인공지능 도입. 특정분야는 인간 능가하는 수준의 인공지능 등장. 초실감 초연결+초지능 기반. 기술 및 산업간, 사물과 인간 간의 경계가 사라지는 대융합 시대 인더스트리4.0에서 통합을 추진하는 것 정보통신기술 + 제조업 N차 산업혁명 발전 1차 산업혁명 : 증기기관, 수력, 기계화 2차 산업혁명 : 전기, 자동화, 대량생산 3차 산업혁명 : 컴퓨터, 인터넷, 디지털화 , 중앙제어 4차 산..
2022.04.21 -
IoT, Embedded
- IOT란 무엇인가? ( 3I’s of IOT) 각종 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술로, 무선 통신을 통해 각종 모바일 장비, 웨어러블 디바이스 등 다양한 임베디드 시스템을 연결하는 기술이다. IOT를 설명하자면, 디바이스에서 데이터를 관리할수있는 Instrumented(도구화), Interconnected(상호연결), Intelligent(지능화)의 관계로 설명할 수 있다. 디바이스에서 데이터를 관리할 수 있는 Instrumented(도구화)와 이것을 보낼 수 있고, 서로 통신할 수 있는 Interconnected(상호연결), 여기서 데이터를 받아서 분석 및 관리할 수 있는 Intelligent(지능화), 이 세 개의 관계를 가지고 있는 것이 IoT이다. - IOT 1.0 ..
2021.12.02 -
RSI기반 자동매매 프로그램 제작 (업비트)
2021.08.18 - [Hi/Blockchain] - 자동매매봇 제작기 자동매매봇 제작기 예전에 주식도 해보고 코인도 해봤었는데, 정보도 없이 사람의 머리로 생각하고 손으로 거래하다보니 결과적으로 잃는게 더 컸던 것 같다. 이득보면 욕심이 생기고, 손해보면 언젠간 오르겠지 forbetterdays.tistory.com 위의 글 이후로 많은 사람이 관심이 많은 것 같아서 이후에 제작했던 자동매매 봇을 써볼까 합니다. 본문에서 올리는 코드는 하락장이던 상승장이던 조금씩만 이득보자는 의미로 만들었던 코드로 큰 순익을 기대하진 않습니다. 아래는 RSI 기반의 자동매매 프로그램을 돌리면서 찍힌 값들 입니다. 크게 벌거나 잃지는 않지만 꾸준하게 조금씩 수익이 올라옵니다. 안정성을 추구하였습니다. 백테스팅을 진행한..
2021.11.21 -
자동매매봇 제작기
예전에 주식도 해보고 코인도 해봤었는데, 정보도 없이 사람의 머리로 생각하고 손으로 거래하다보니 결과적으로 잃는게 더 컸던 것 같다. 이득보면 욕심이 생기고, 손해보면 언젠간 오르겠지란 생각으로는 못 벌겠다고 느꼈었고 접었었다. 다시 코인판이 올라오면서 봇을 돌려버리면 내가 설정한 조건 안에서 안전하게 수익을 창출할 수 있지 않을까해서 간단한 자동매매 프로그램을 만들었었고, 백테스팅을 통해 결과를 따져보고 만원으로 테스트기간을 가졌었다. 일단, 주식판은 정보도 많이없고, 이미 여러 알고리즘과 전략, 정보들과 인공지능 모델을 통해 프로그램이 많았기에 생각하지 않았고, 코인한번 해보니 주식보단 코인이 재밌었었다. 코인판은 24시간 돌아가기에 여러 조건 따져서 자동매매 프로그램 돌려버리기에 좋을 것 같다고 생..
2021.08.18 -
[BOJ] Queue, DeQue/ 19단계
1 18258 큐 2 성공 7886 26220 30.958% 큐의 개념을 익히고 실습하는 문제. 연산 당 시간 복잡도가 O(1)이어야 한다는 점에 유의하세요. def push(num) : list.append(num) def pop() : if len(list) != 0 : print(list.popleft()) else : print(-1) def size() : print(len(list)) def empty() : if len(list) != 0 : print(0) else : print(1) def front() : if len(list) != 0 : print(list[0]) else : print(-1) def back() : if len(list) != 0 : print(list[-1]) e..
2021.08.08 -
[BOJ] Stack / 18단계
1 10828 스택 성공 41369 108817 38.494% 스택의 개념을 익히고 실습하는 문제 def push(num): arrayList.append(num) def pop() : if len(arrayList) == 0 : print(-1) else : print(arrayList.pop()) def size() : print(len(arrayList)) def empty() : if len(arrayList) == 0 : print(1) else : print(0) def top() : if len(arrayList) == 0 : print(-1) else : print(arrayList[-1]) import sys arrayList = [] T = int(input()) for i in ran..
2021.07.13 -
[BOJ] 정수론 및 조합론 / 17단계
자바로만 풀다가 파이썬 공부할겸 이번 단계에서는 파이썬으로만 풀었습니다. 1 5086 배수와 약수 성공출처다국어분류 7239 10516 70.288% 배수와 약수를 배우는 문제 def test(num01, num02) : if num02 % num01 == 0 : print("factor") elif num01 % num02 == 0: print("multiple") else : print("neither") while True : number01, number02 = map(int, input().split()) if number02 == 0 and number01==0 : break test(number01, number02) 2 1037 약수 성공분류 12488 25527 49.747% 약수의 성질..
2021.05.24 -
[BOJ] Greedy Algorithm / 16단계
1 11047 동전 0 동전의 조건이 특별해서 동적 프로그래밍보다 빠르게 답을 찾을 수 있는 문제 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer bd = new StringTokenizer(bfr.readLine()); int T = Integer.parseInt(bd.nextToken()); int money = Integer.parseInt(bd.nextT..
2021.05.24 -
[MockFlow] 쇼핑몰 웹페이지 디자인
MockFlow 사이트의 Hand drawing을 사용하여 무신사 홈페이지의 와이드 프레임을 제작해 보았다.
2021.05.13 -
Software Engineering 2021.04.23
-
Software Engineering
소프트웨어란? 프로그램. 프로그램의 개발, 운용, 보수에 필요한 정보 전부 개념적이고 무형적(생산물의 구조가 코드 안에 숨어있음) 소프트웨어의 특징 복잡성 순응성 변경성 비가시성 소프트웨어의 종류 주문형SW 패키지SW 임베디드SW 시스템이란 필요한 기능을 실현시키기 위해 관련 요소를 어떤 법칙에 따라 조합한 집합체 개발작업의 특징 명세화 어려움 재사용 어려움 예측 어려움 유지보수 어려움 소프트웨어 위기란? SW 수요 급격히 증가. > 복잡성 증가 (요구, 복잡성, 난이도 증가)> 기존 방법 충분하지않아 (같은 인력, 방법, 도구) 문제발생 소프트웨어 공학이란 SW 개발, 운영, 유지보수, 소멸에 대한 체계적인 접근 방법 SW 개발에 사용되는 방법은 반복사용가능(일회성x) 소프트웨어 공학의 목적 복잡도, ..
2021.04.23 -
Data Structure
01) 자료구조와 알고리즘 - 자료구조의 개념 문제 해결을 위한 자료의 공간 및 시간적 의미의 효율적 사용(처리)를 위해 구조화한 것. - 데이터 정보 선형구조(배열), 비선형구조(포인터) - 정보처리 - 단위 Bit – Byte – Field – Record – File – DB Bit란 정보표현의 최소단위 (on/off) Binary Digit(2진수) Byte(= 4 Bit) 문자 표현의 최소단위, 절대 주소가 있음. Field란 문자가 모인 의미있는 하나의 데이터 단위. (논리적 자료 단위) Record란 연관된 필드들의 모임. File이란 연관된 레코드들의 모임. 기억장소에 저장되어 연속적인 문자열들의 모임. - 표현 수치데이터 : 정수와 실수, 2진법 8진법 16진법 10진법. - 알고리즘의 ..
2021.04.02 -
Computer Architecture 4
4.1 다음 명령어에 대해서 아래 질문에 답하라. 명령어 : AND Rd, Rn, Rm 뜻 : Reg[Rd] = Reg[Rn] AND Reg[Rm] 4.1.1 이 명령어를 실행하기 위해서 그림 4.10의 제어 유닛이 생성하는 제어신호들의 값은? RegWrite MemRoad ALUMux MemWrite ALUop RegMux Branch 0 0 1(Imm) 1 ADD X 0 ALUMux는 ALU 입력에서 Mux를 제어하는 제어신호. 0(Reg)면 레지스터 파일의 출력을 선택, 1(Imm)은 명령어로부터 즉시 ALU에 대한 두번째 입력을 선택. RegMux는 레지스터 파일에 대한 데이터 입력에서 Mux 제어하는 제어신호. 0(ALU)는 ALU의 출력 선택. 1(Mem)은 메모리의 출력 선택. X는 Don’..
2021.04.02 -
Computer Architecture 3
3.1) 5ED4-07A4의 결과는 무엇인가? 이 두수는 부호없는 16비트 16진수이다. 결과를 16진수로 구하고 계산과정을 보여라. 5ED4(16)을 이진표현으로 바꾸면 0101 1110 1101 0100(2) 이다. 07A4(16)을 이진표현으로 바꾸면 0000 0111 1010 0100(2) 이다. 이 두 수의 차를 연산하면 0101 0111 0011 0000(2)이다. 이를 16진수로 바꾸면 5730(16) 이다. 3.6) 185와 122가 부호없는 8비트 십진 정수라고 가정하라. 185 - 122를 계산하라. 오버플로 또는 언더플로인가? 아니면 둘 다 인가? 십진수 185와 -122를 합하면 63(10)이 나온다. 이는 이진수로 바꾸면 0011 1111이고, 1.11111 * 2^5이므로 오버플..
2021.04.02 -
Computer Architecture 2
2.1 ) 다음 C문장을 위한 LEGv8 어셈블리 코드를 작성하라. C변수 f,g,h는 레지스터 X0, X1, X2에 있다고 가정한다. 최소 개수의 어셈블리 명령어를 사용하라. f = g + ( h - 5 ) ; add f, h, -5 add f, f, g //h와 -5를 더하고 이를 다시 g랑 더한다. 2.3 ) 다음 C문장에 해당하는 LEGv8 어셈블리 코드는? C변수 f, g, h, i, j는 레지스터 X0, X1, X2, X3, X4에 있다고 가정한다. 배열 A와 B의 시작 주소는 레지스터 X6과 X7에 있다고 가정한다. B[8] = A[i - j]; SUB x9, x3, x4 //임의의 x9레지스터에 i-j 를 해줌 LDUR x9, [x6, x9] // A배열이 시작 주소가 x6이고, i-j가 ..
2021.04.02 -
Computer Architecture 1
1.3) C와 같은 상위 수준 언어로 작성된 프로그램을 컴퓨터 프로세스가 바로 수행할 수 있는 표현으로 바꾸는 과정을 설명하여라. C와 같은 상위 수준 언어를 작성하고, 이 것을 컴파일러를 통해 어셈블리 언어로 번역한다. 이를 어셈블러가 2진수로 바꾸어주어 컴퓨터 프로세서가 프로그램을 수행할 수 있게 만들어준다. 1.5) 동일한 명령어 집합을 가지고 있는 3개의 다른 프로세서 P1, P2, P3의 클록석도와 CPI는 다음과 같다. a)어느 프로세서의 성능이 가장 좋은가? 초당 명령어 수로 표현하여라. 동일한 명령어 집합을 가졌다고 하였으니 명령어 수가 같다고 볼 수 있다. 초당 명령어 수를 x라하면 각각의 CPU 실행시간은 이렇게 볼 수 있다. P1의 실행시간 = (1.5(CPI) * x) / 3GHz ..
2021.04.02 -
[BOJ] dynamic programming / 14단계
1 1003 피보나치 함수 단순 재귀로 피보나치 수를 구하면 왜 느릴까요? 함수 호출의 개수가 기하급수적으로 늘어나기 때문입니다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(bfr.readLine()); for(int i=0; i
2021.03.19 -
[BOJ] 15단계 / Greedy Algorithms
1 11047 동전 0 동전의 조건이 특별해서 동적 프로그래밍보다 빠르게 답을 찾을 수 있는 문제 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer bd = new StringTokenizer(bfr.readLine()); int T = Integer.parseInt(bd.nextToken()); int money = Integer.parseInt(bd.nextT..
2021.03.14 -
동적계획법(Dynamic Programming) / Memoization
-동적계획법 (dynamic programming) 복잡한 문제를 간단한 여러개의 문제로 나누어서 푸는 방법. 부분문제반복과 최적부분구조를 가지고있는 알고리즘을 일반적인 방법보다 더 적은 시간내에 풀 때 사용. 문제를 여러개의 하위 문제(subproblem)로 나누어 품. 이 하위문제들을 결합하여 최종적인 문제에 도달하는 것. 메모이제이션(memoization) 컴퓨터 프로그램이 동일한 계산을 반복할 때, 이전에 계산한 값은 메모리에 저장해서 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술. 동적 계획법의 핵심 기술. 처음 방문하는 재귀문제면 계산을 통해 얻은 값을 메모리에 저장, 이 후 재방문을 하면 계산하지 않고 저장 된 값 사용. ex) import java.util.Sc..
2021.03.05 -
블록체인 개념
#블록체인이 뭐냐면 블록체인(Blockchain) = 데이터 분산 처리 기술. 네트워크에 참여하는 모든 사용자가 모든 거래 내역등의 데이터를 분산, 저장하는 기술. 블록체인에서의 'Block'은 개인과 개인의 거래(P2P)의 데이터가 기록되는 장부. 이 블록들이 형성되고 시간이 지나면서 순차적으로 연결된 사슬(Chain)의 구조를 가짐. 모든 사용자가 거래내역을 가지고 있어서 거래내역을 확인하려면 모든 사용자가 보유한 장부를 대조하고 확인해야함. > 공공 거래장부, 분산 거래장부 라고 불림. #기존 거래방식과의 다른점 - 기존 거래 방식 : 은행이 모든 거래내역을 가지고있는, 은행이 A와 B의 거래 내용을 증명해주는 중간 역할을 하는 방식. - 블록체인 : 거래 내역을 은행이 아니라 여러명에게 나눠서 저..
2021.03.04 -
[BOJ] BackTracking /13단계
13 백트래킹 모든 경우를 탐색하는 백트래킹 알고리즘을 배워 봅시다. 1 15649 N과 M (1) 백트래킹 입문 문제 1 import java.util.Scanner; public class Main { public static int[] array; public static boolean[] visit; //방문했는지 확인. default = False public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int M = scan.nextInt(); array = new int[M]; visit = new boolean[N]; dfs(N, M, 0); } public st..
2021.02.24 -
Backtracking
백트래킹(=퇴각검색) , 일종의 트리 탐색 알고리즘.해를 찾아가는 중에 막히면 다시 이전으로 돌아가서 해를 찾아가는 기법으로, 최적화 문제와 결정 문제를 풀 때 사용. 더보기- 깊이우선탐색 (Depth First Search, DFS)- 너비우선탐색 (Breadth First Search, BFS) - 최선우선탐색 (Best First Search/Heuristic Search) 모든 경우의 수를 검색 > DFS.트리의 깊이가 무한대이면 BFS DFS는 가능한 모든 경로를 탐색함. 일일이 하나씩 체크해보면서 노가다하는 탐색임.백트래킹은 DFS 방식과 비슷한데, DFS처럼 해를 찾아가는 중에, 다음에 갈 경로로 하면 해가 절대 안나올것 같으면 그 경로는 가지않고 되돌아감.이렇게 조건을 설정해서 안가는 경로..
2021.02.19 -
[백준] 12단계 문제 모음
12 정렬 배열의 원소를 순서대로 나열하는 알고리즘 1 2750 수 정렬하기 시간 복잡도가 O(n²)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 삽입 정렬, 거품 정렬 등이 있습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new Buff..
2021.02.15 -
[백준] 11단계 문제 모음
11 브루트 포스 가장 간단한 알고리즘인, 모든 경우의 수를 검사하는 브루트 포스 알고리즘을 배워 봅시다. 1 2798 블랙잭 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int T = scan.nextInt(); int Max = scan.nextInt(); int n[] = new int [T]; for(int i = 0; i
2021.02.07 -
[백준] 10단계 문제 모음
10단계. 재귀 재귀함수를 다뤄 봅시다. 1 10872 팩토리얼 재귀함수를 만들어서 제출해야한다. import java.util.Scanner; public class Main { static int factory = 1; public static int fac(int num) { if(num ==0) return factory; else{ factory *= num; return fac(num-1); } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); int x = scan.nextInt(); fac(x); System.out.println(factory); } } 2 10870 피보나치 수 5 이 문제 ..
2021.02.04 -
[백준] 9단계 문제 모음
1 1978 소수 찾기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); int count = 0; for(int t = 0; t
2021.01.24 -
[DB] 쇼핑몰 DB 설계
학사행정 시스템 설계 후, 개인적으로 만들어본 인터넷쇼핑몰 DB설계를 해보았습니다. 설계 처음에는 이런식으로 설계해봤는데 메뉴같은 경우에는 서브로 나눌 수 있어서 이런 식으로 제작해야 좋은 설계라고 피드백을 받았고, DB설계를 탄탄하게 하고 꼼꼼히 확인한 후에 완벽해졌다는 판단이 들 때 작업을 해야된다는 이유를 알게 된 공부였다.
2021.01.21 -
[DB] 학사행정 시스템
예전에 개인적으로 학사행정 시스템 만들어 보고싶어서 프로젝트 했던 것입니다. 제작 과정 순서대로 나열했습니다. 기본 데이터 막 만들어봄. professor Name Sex Age Number Subject Place 김덕팔 M 53 010-2812-2781 JAVA B-502 C++ HTML Linux 이성경 F 48 010-6821-9246 시대의 흐름 B-304 이성경 F 48 010-6821-9246 경제기초 B-304 이성경 F 48 010-6821-9246 한국사 B-304 이성경 F 48 010-6821-9246 통계학개론 B-304 조경배 M 58 010-1500-1574 열역학 A-101 조경배 M 58 010-1500-1574 창의적사고 A-101 박수정 F 44 010-4126-1257..
2021.01.21 -
[Adobe XD] 코로나 관련 어플 _ UI제작
- 소비자 니즈 주기적으로 소독한 가게 마스크의 올바른 교체 시기 파악 - 방안 가게소독 정보 제공 / 실시간 소독현황/ 소독 주기 자료수집 마스크에 대한 기본 정보 제공 (KF80, KF94, KF99, 방진 마스크, etc) -1) 내 주변 소독한 가게 찾기, 가게 별 소독 내역 확인 가능 소독 및 청결의 이미지인 하늘색과 흰색의 색상을 이용하여 디자인 하였음. 하단에는 공지사항이나 유용한 정보 표시해주는 툴팁 소독한 업체와 소독 후 지난 업체 등, 가게마다 시간에 따른 색상을 부여하였음. -2) 현재 사용하고 있는 마스크 사용 기간 확인 가능 바코드 찍음 > 상품의 이름 수집 > 무슨 마스크인지 판단 및 저장 > 현재 핸드폰 시간 연동 권장시간이 지나 위험성을 알리기 위한 빨간 색상을 사용함 - 요..
2021.01.21 -
[Apache]
- Apache 웹 서버의 개념과 서버와 클라이언트간에 데이터 전송 방식 웹 브라우저와 같은 클라이언트에서 HTTP(Hyper Text Transfer Protocol)요청을 받고, HTML 문서같은 웹페이지를 반환하는 것이다. 즉, HTTP를 통해 웹브라우저에서 요청하는 HTML 문서나 오브젝트를 전송해주는 서비스 프로그램이다. a) (Listen) 서버를 실행하여 클라이언트 접속을 기다린다. b) (Send) 클라이언트가 서버에 접속하여 데이터를 보낸다. c) (Accept) 서버에서 클라이언트 접속을 수용하고, (Recv) 클라이언트가 보낸 데이터를 받아서 처리한다, d) (Send) 서버가 처리한 데이터를 클라이언트에 보낸다. e) 클라이언트에서 받은 데이터를 처리한다, f) (Close) 접속을..
2021.01.21