분류 전체보기
-
Spring boot #3 간단한 회원 서비스 및 테스트 구현Study/Spring boot 2021. 7. 8. 17:58
1. 어플리케이션 구조 아래 요구사항을 만족하는 간단한 회원들을 관리하는 어플리케이션을 구현한다고 가정하자. 데이터 : id, 이름 기능 : 회원 등록, 조회 controller, service, repository, domain으로 총 4가지로 나누어서 각각 구현할 것이다. service는 클라이언트와 밀접한 로직을 수행하는 역할이고 domain은 사용될 객체를 의미한다. repository는 DB와 같이 작동하고, 데이터를 관리하는 역할이다. 일단은 DB는 없이 진행할 것이므로 인터페이스로 관리하자. 2. 도메인과 리포지토리 구현 앞에서 만든 프로젝트에서 계속 이어서 코드를 구현해보자 먼저 회원 객체가 필요하므로 도메인을 구현해야한다. java/[프로젝트이름/ 디렉토리내에 domain 패키지를 생성하..
-
Spring boot #2 static view, template, APIStudy/Spring boot 2021. 7. 8. 01:12
1. static view 먼저 프로젝트의 main를 실행해보고 http://localhost:8080/ 에 접속해보자 (Spring boot는 기본으로 포트 8080를 사용) 그럼 아래처럼 에러페이지가 뜰 것이다. 아주 정상이다. 왜냐하면 클라이언트에게 보여줄 아무런 페이지를 생성하지 않았기 때문이다. 이번에는 src/main/resources/static/ 디렉토리에 index.html 파일을 생성해보자. 파일 html문은 아래와 같이 작성한다. 요~ 오태식이~ 그리고 main 함수가 실행중이라면 종료하고 다시 실행해보자. 그럼 아래와 같이 페이지가 뜨는것을 확인할 수 있다! 2. template static 디렉토리내에 있는 index.html은 기본 url에 접속하면 가장 먼저 띄어주는 역할을 한..
-
Spring boot #1 프로젝트 시작Study/Spring boot 2021. 7. 8. 00:22
이 Spring boot 기본 포스팅들은 인프런 김영한님의 강의를 듣고 정리한 것입니다. 1. Java11, Intellij 설치 https://jdk.java.net/java-se-ri/11 위 사이트로 접속하여 자신의 OS에 맞는 버전을 택한후 설치한다. https://www.jetbrains.com/idea/download/ IntelliJ도 마찬가지로 위 URL에 접속하여 다운을 받으면 되는데, 일단 무료버전을 사용할것이므로 Community버전을 받는다. 설치옵션은 자유롭게 하면되지만 잘 모르겠다면 위 빨간색 동그라미는 모두 체크하고 Next를 눌려준다. 2. 프로젝트 생성 https://start.spring.io/ 위 사이트에 접속 후 아래와 같이 체크 후 GENERATE 버튼을 눌려 프로젝..
-
백준 1744번 : 수 묶기 (C++)알고리즘/BOJ 2021. 7. 7. 16:07
문제 : https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 수열을 입력을 받고 임의의 원소들을 묶어 최대 수열 합을 구하는 문제이다. 그리디 알고리즘을 이용하면 쉽게 풀 수 있다. 입력값의 범위를 보면 -10,000 보다 크고 10,000보다 작은 수이다. 즉 양수 음수 혹은 0을 입력받는데 다음과 같은 경우로 나눌수 있다 1. 양수, 양수 둘다 1보다 큰 수면 두 수를 묶어 곱으로 만드는 것이 더 클것이고, 1이 존재한다면 묶지 않는게 더 크..
-
블록체인이란? 비트코인 #3Study/BlockChain 2021. 7. 5. 18:33
5. Decentralized new [nuː][njuː] Eng 1.new [형용사] 새, 새로운(전에는 없던 것이 최근에 생겼거나 만들어졌거나 도입되었거나 한) 참조 brand-new 반의어 old 2.NEW (경제) net economic welfare 3.new- [COMB in ADJ] New- combines with the past participle of some verbs to form adjectives which indicate that an action has been done or completed very recently. 4.New N (Hobbies) 5.New Age [형용사] 뉴에이지의(현대 서구적 가치를 거부하고 영적 사상, 점성술 등에 기반을 둔 생활 방식과 관련된) ..
-
[Django] Redis로 API rate limit 해결하기개발일지/개발일지 2021. 7. 4. 22:14
백엔드 개발을 하다보면 외부 서비스가 제공하는 API를 사용하는 경우가 많습니다. 예를 들어, 다른 서비스의 유저 정보를 조회를 하거나, 다른 어플리케이션의 status를 확인하는 경우 등 입니다. 그리고 API request의 시간을 줄이기 위해 비동기적으로 구현하여 동시에 많은량의 API request 신호를 보낼수도 있습니다. 만약 외부 API에 "20 requests per second" 같은 rate limit이 존재한다면 구현이 조금 복잡해집니다. API request의 속도를 높이기 위해 비동기, 멀티쓰레딩 등 방법을 사용하여 동시에 여러 API requests를 발생시키도록 하였는데, 만약 우리의 어플리케이션을 동시에 여러 유저들이 사용하면 주어진 rate limit을 쉽게 초과해버리기 때..
-
블록체인이란? 비트코인 #2Study/BlockChain 2021. 7. 4. 15:54
비트코인 #1 : https://down-develope.tistory.com/22 4. Transaction (TX) 이란? output [ˈaʊtpʊt] Eng 1.output [명사] 생산량, 산출량 2.out put (환경공학) 출력(出力) 3.output(power) [명사] (농업) 출력(出力) 4.data output 데이터 출력 5.an output device 출력 장치 6.출력 出力 (컴퓨터, 인쇄) output, output, print (off/out) 7.프린트 print [명사] printout, output, [동사] print (off/out), output 8.산출량 産出量 output, yield 9.아웃풋 (컴퓨터) (an) output 10.제작품 製作品 a manuf..
-
블록체인이란? 비트코인 #1Study/BlockChain 2021. 7. 3. 14:32
1. 해시함수 비트코인에 대해 알아보기 전에 해시함수에 대해 알아야합니다. 해시함수는 위키피디아에 따르면 해시함수의 정의는 "임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다." 그럼 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑한다고하는데 어떤 규칙을 만족해야할까? 해시함수는 보안을 위해 아래 3가지 규칙을 만족해야 한다. 1. collision-resistant 2. one-way 3. puzzle-friendly collision-resistant 부터 살펴보도록하겠다. 해시함수는 고정된 길이의 데이터로 매핑한다고 하였으니 output의 개수는 무한대가 아닌 한정적일것이다. 그럼 I..