| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- ModalBottomSheet
- 국방오픈소스아카데미
- google_ml_kit
- CS231n
- 고려대학교 응원가
- 다익스트라
- Dijkstra
- linear classifier
- 앱 출시
- 고려대학교
- 백준
- text recognition
- 더보기창
- 이미지 분류
- image classification
- 알고리즘
- 응원가
- optimization
- loss function
- 해커톤
- flutter
- 고연전
- KUsic
- 앱
- K-nearest neighbor
- 앱 개발
- image_picker
- OSAM
- 뮤직플레이어
- Firebase
- Today
- Total
목록전체 글 (20)
영주머니의 개발주머니
API는 예측 가능하고 일관된 구조가 중요하다.반환 형식이 제각각이거나, GET 요청이 상태를 변환하거나, 일관성 없는 네이밍은 혼란을 야기한다.모든 엔드포인트가 동일한 규칙 (날짜 형식, 에러 응답 구조 등)을 따르면 클라이언트 개발이 쉬워지고 유지보수가 용이하다.REST에서 자원은 명사로 표현하고 동작은 HTTP 메서드로 표현한다.예를 들어, 회원가입을 할 때 “POST /createUser”보다는 “POST /user”처럼 경로를 나타내는 것이 바람직하다HTTP 메서드의 의미GET리소스를 조회부작용이 없으며 안전하고 캐시 가능하다.POST새로운 리소스를 생성기본적으로 idempotent하지 않음 (중복 생성의 위험이 있음)idempotent(멱등성) : 어떤 연산을 여러 번 반복해도 결과가 변하지 ..
@RequestParam1개의 HTTP 요청 파라미터를 받기 위해 사용한다.@ModelAttribute클라이언트가 전송하는 폼(Form) 형태의 HTTP Body와 요청 파라미터들을 생성자나 Setter로 바인딩하기 위해 사용된다.@ModelAttribute에는 매핑시키는 파라미터의 타입이 객체의 타입과 일치하는지 등을 포함한 다양한 검증(Validation) 작업이 추가적으로 진행된다.@RequestBody클라이언트가 전송하는 Json 형태의 HTTP Body를 Java 객체로 변환해주는 역할을 한다.@RequestBody로 받는 데이터는 Spring에서 관리하는 MessageConverter들 중 하나인 MappingJackson2HttpMessageConverter를 통해 Java 객체로 변환되는데..
디스패처 서블릿 (Dispatcher-Servlet)HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러 (Front Controller)클라이언트로부터 어떤 요청이 오면 Tomcat과 같은 서블릿 컨테이너가 요청을 받게 되고, 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 된다. 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야 하는 컨트롤러를 찾아서 작업을 위임하고 그 결과를 받아온다.Filter vs InterceptorFilter디스패처 서블릿에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다.Filter를 추가하기 위해서는 Filter 인터페이스의..
Redis인메모리 저장소모든 데이터를 메모리에 저장하여 매우 빠른 읽기/쓰기 성능 제공한다.싱글 스레드다양한 자료구조 지원String, List, Set, Hash, Sorted Set, HyperLogLog 등Redis 주요 활용 사례1. Cache일반적인 캐시 구조는 3개의 layer로 이뤄진다.Application Cache어플리케이션 메모리 내부에 존재한다.주로 유저 프로필 같이 자주 접근되는 데이터를 저장하는 해시맵이다.캐시 크기가 작으며 앱이 재시작되면 데이터가 사라진다.Second Level Cache서버마다 로컬로 존재하는 캐시이다.LRU, LFU, TTL과 같은 정책을 설정하여 캐시에서 자동으로 데이터를 제거한다.Distributed Cache애플리케이션 서버와 분리된 별도의 서버에 존재..
Linear Classifier Input image는 크기가 32*32 픽셀이고 한 픽셀은 RGB값으로 표현되므로 32*32*3의 배열로 표현된다. f(x, W)에서 x가 input data이고 W는 weight(parameter)이다. 이러한 parametic한 접근의 경우 학습 과정에서 학습 데이터들을 가장 잘 요약하는 W 값을 값을 찾는 것을 목표로 한다. 학습을 마치고 최적의 W 값을 얻으면 더 이상 학습 데이터를 기억하지 않아도 된다. 이는 이전의 KNN 방식에서 모든 학습 데이터를 계속 기억하고 있던 것과 비교된다. Parametic한 접근 방식에서는 학습으로 얻은 W의 값만 testing에 사용되므로 더 효율적이다. f는 x와 W의 관계를 나타내는 함수로 다양한 형태가 있을 수 있다. 그 ..
Image Classification Image classification은 어떤 input image가 주어졌을 때 그 이미지가 어떤 카테고리에 속하는지 분류하는 문제이다. 예를 들어 고양이 사진이 주어지면 해당 사진을 "고양이"로 분류하는 문제이다. 사람은 고양이 사진을 봤을 때 직관적으로 "고양이"라고 인지할 수 있지만, 컴퓨터는 고양이 사진의 각 픽셀을 하나의 RGB값으로 인식하고 사진을 각 픽셀의 RGB값을 가진 거대한 행렬로 인식한다. 사람과 컴퓨터간의 이미지를 인식하는 방식의 차이를 "Semantic Gap(의미적 차이)"이라고 부른다. 이렇게 숫자로 이루어진 행렬에서 "고양이"라는 의미를 얻어내기는 어렵다. 사진에 조금의 변화라도 주면 행렬 전체의 값이 변화하고 여러 형태와 배경에 놓인 고..
다익스트라 알고리즘은 하나의 출발점에서 다른 모든 정점으로의 최단 경로를 구하는 알고리즘이다. 단, 모든 간선은 음이 아닌 비용을 가진 간선이어야 한다. 기본 예제 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net Python import sys import heapq input = sys.stdin.readline INF = sys.maxsize V, E = map(int, input().split()) K = int(input()) dist = [INF]*(V+1) pq..
백준에서 Python으로 알고리즘 문제풀이를 하기 위해서는 우선 문제의 입력을 받아야한다. Python으로 입력을 받는 다양한 방법을 알아보자. input()을 이용하여 하나의 데이터 입력 받기 input()으로 입력받은 데이터는 기본적으로 string이다. # 하나의 데이터를 "string" type으로 입력 받음 a = input() 만약 입력 받는 데이터가 정수(int)나 실수(float)라면 다음과 같이 형 변환을 할 수 있다. # 하나의 정수(int) 데이터 입력 받기 a = int(input()) # 하나의 실수(float) 데이터 입력 받기 b = float(input()) 두개 이상의 데이터 입력 받기 문제를 풀다 보면 다음과 같이 입력이 2개 이상인 경우가 있다. 입력이 공백으로 구분된 ..
google_ml_kit 패키지에는 Text Recognition, Face Detection, Image Labeling 등의 다양한 기능을 지원한다. 그 중 Text Recognition을 사용해보자. google_ml_kit | Flutter Package A Flutter plugin to use all APIs from Google's standalone ML Kit for mobile platforms. pub.dev 아래의 예시코드는 직전 포스트의 image_picker 사용 예제에 텍스트 인식 기능을 추가해서 만들었다. [Flutter] image_picker로 카메라 및 갤러리에서 이미지 가져오기 Flutter에서 카메라로 촬영한 사진이나 갤러리의 이미지를 가져오는 것은 image_pic..
Flutter에서 카메라로 촬영한 사진이나 갤러리의 이미지를 가져오는 것은 image_picker 패키지로 간단히 구현할 수 있다. image_picker | Flutter Package Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera. pub.dev 예시 코드 class _MyAppState extends State { XFile? _image; //이미지를 담을 변수 선언 final ImagePicker picker = ImagePicker(); //ImagePicker 초기화 //이미지를 가져오는 함수 Future getImage(ImageS..