일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kubernetes
- 생성형
- POD
- 컨설턴트
- 쿠버네티스
- vuejs
- 오픈시프트
- jpa
- BFS
- Machine Learning
- Python
- 도커
- LLaMa
- 메세지큐
- k8s
- Docker
- OpenShift
- fast api
- vue.js
- 머신러닝
- fastapi
- 생성형 AI
- 컨설팅
- Redis
- 솔루션조사
- GPT
- 리트코드
- SpringBoot
- 로깅
- LeetCode
- Today
- Total
목록전체 글 (77)
수 많은 우문은 현답을 만든다
안녕하세요, 조영호입니다. 이번엔 요즘에 유행하는 python 3.6 이상 버전에서 사용가능한 백엔드 프레임워크인 fast api를 사용해보도록 하겠습니다. fast api는 Uvicorn ASGI Server 를 사용한다는 특징이 있다. Uvicorn lightweight(매우 가벼운) 비동기 웹 서버 fastapi framework만으로는 웹 개발을 할 수 없고, ASGI와 호환되는 웹 서버가 필요하다. ASGI Asynchronous Server Gateway Interface의 약자 비동기 web server를 의미함 - async / await 구문을 사용 자 이제 우리는, uvicorn 이라는 HTTP Request를 처리해줄 경량 비동기 웹서버를 설치하고 그 위에 fast api를 돌려보겠다..
커리어가 쌓일수록 드는 생각이 있다. '개발을 잘 하는것도 좋지만, 고객의 니즈를 정확하고 빠르게 파악하는 것도 중요하고 고객을 얼마나 잘 설득하냐가 정말 중요하구나' 라는 생각이 든다. 나의 이런 생각을 이야기하면 가끔씩 누군가는 진짜 개발자는 그런 고민을 하면 안된다고 말한다. 이런 고민을 하면 진정한 개발자가 아닌 것 일까? 그럼 진정한 개발자는 무엇인가? 나는 그런것들을 고민할 시간에 주변에서 고생하시는 컨설턴트들의 업무를 유심히 살펴보며 어깨너머로라도 배우기 위해 노력하고있다. 컨설턴트들은 발표자료나 요약자료 등의 PPT를 만들때 '장표'를 만든다고들 많이 표현한다. 그럼 이 잘표는 어떻게 만드는게 좋을까? 나는 최대한 짧고 간결하게 만드는게 좋다고 생각했지만 대부분의 컨설턴트들은 장표를 글과 ..
안녕하세요, 조영호입니다. 요즘 LLM이 핫하죠~ LLM을 가지고 생성형 AI 서비스를 개발해보고 있는데요, 관련하여 필요한 개념들을 우선 정리해 공유드리고자합니다. 하나씩 알아보겠습니다. LM (언어 모델, Language Model) 인간의 언어를 이해하고 생성하도록 훈련된 일종의 인공지능 모델로, 주어진 언어 내에서 패턴이나 구조, 관계를 학습하여 텍스트 번역과 같은 좁은 AI 작업에서 주로 활용됩니다. LLM (거대 언어 모델, Large Language Model) LLM은 사전에 대규모의 언어 데이터를 학습하여 문장 구조나 문법, 의미 등을 이해하고 생성할 수 있습니다. 예를 들어, 주어진 문맥에서 다음 단어를 예측하는 문제에서 LLM은 문장 내의 단어들 사이의 유사성과 문맥을 파악하여 다음 ..
어떤 웹 서비스든지 화면이 존재하며 우리는 그것을 Front-end라고 부릅니다. 오늘은 Front-end 프레임워크 중 하나인 Vue.js로 화면을 구성하는 방법을 알아보고자 합니다. Vue란? JavaScript 프레임워크로 이번 포스팅에서는 Vue 3를 다루겠습니다. Vue 컴포넌트는 옵션(Options) API와 컴포지션(Composition) API 두 가지 스타일로 작성할 수 있는데 옵션 스타일은 익숙하므로 Vue 3부터 나타난 컴포지션 방식으로 작성해보도록 하겠습니다. Node.js 설치 https://nodejs.org/en/download/ 설치 후 커맨드창을 열고 npm -v 로 설치를 확인합니다. Vue 설치 npm init vue@latest 플러그인 설치 저는 위에서 ESLint,..
선형(linear), 비선형(non linear) 선형 선형회귀란, 주어진 데이터 집합에 대해 종속변수와 n개의 독립변수 사이의 선형 관계를 모델링 하는 것을 말한다. 수식으로 예를들면 y=ax+b (y: 종속변수, x: 독립변수) 처럼 표현할 수 있고 독립변수는 input, 종속변수는 output의 개념으로 생각할 수 있다. 즉 선형회귀는 집합에서 최적의 선을 찾는게 목표이며 독립변수의 계수들이 선형관계에 있는것을 선형이라 한다. 선형회귀는 위 수식처럼 y=ax+b 처럼 표현할 수 있고 b는 절편(=bias), 그리고 a는 기울기 또는 가중치(wieght)라고 한다. x는 파라미터 값으로 직접적인 컨트롤을 할 수 없으며 우리가 궁극적으로 구하려는건 a와 b의 값을 구해서 y(=price, 확률 등)을 ..
왜 머신러닝이 필요할까? 머신 러닝은 경험으로부터 학습해나가는 알고리즘이다. 즉 더 많은 경험을 축적함에 따라 성능이 향상된다고 말할 수 있다. 내가 개발해놓은 소프트웨어가 아무리 성능이 좋다해도, 경험을 쌓거나 스스로 학습할 수는 없기에 머신러닝은 소프트웨어 개발과 대조적인 측면이 있다. 그러나 머신러닝은 항상 동일한 비즈니스 로직을 수행하지 않는다는 관점도 생각해볼 수 있다. 핵심 구성 요소 데이터 올바른 데이터가 있어야 올바른 결과가 나온다. * 스칼라 : 크기만 있고 방향을 가지지 않는 양 (오늘은 영하 10도) * 벡터 : 크기와 방향을 가지는 (어디로 얼마만큼 가야 하나요?) 모델 한 유형의 데이터를 입력으로 예측을 출력하는 계산적 장치 목적 함수(Objective Functions) 모델이 ..
아나그램이란? 아나그램이란 한 단어의 철자를 분해해 다른 단어, 혹은 다른 문장으로 바꾸는 놀이 약간 수학적인 요소가 있어서 어렵지만 재미있는 훈련이 될 것이다. 문제: https://www.hackerrank.com/challenges/sherlock-and-anagrams/problem 설계: 1. 애너그램 처럼 실제로 문자를 뒤집고 하려면 복잡하다. 어떻게 단순화 할 수 있을까? -> 문자열 정렬 2. 문자열에 대한 모든 케이스를 조사해야되는데 삼중 포문이 필요하려나? -> 이중 포문만 있어도 된다 ㄴ 역할 1: 문자열 시작위치를 한칸씩 이동 ㄴ 역할 2: 자르는 범위를 한칸씩 또 늘려야한다. 3. 반복되는 문자가 나오면 count 를 증가시킨다. 4. 같은 문자가 여러번 반복되면 시그마 합을 구해..
허프만 코딩 : 데이터 문자의 등장 비도수에 따라서 다른 길이의 부호화를 사용하는 알고리즘 문제 링크 : Tree: Huffman Decoding | HackerRank 풀이 : 더보기 """class Node: def __init__(self, freq,data): self.freq= freq self.data=data self.left = None self.right = None """ # Enter your code here. Read input from STDIN. Print output to STDOUT def decodeHuff(root, s): //여기서 핵심은, 단순 재귀로 짜면 안되고, leaf에서 다시 루트로 돌아가야한다는것. //즉 두 스텝이건 세 스텝이건 원복해야하며 순차적 원복이 ..
Trees: Is This a Binary Search Tree? 문제링크 Input Node List 가 들어온다. Output Yes (또는 No) 풀이: 더보기 def checkBST(root): // 검증할때는 함수를 하나 더 만들어야한다. def check(node, min_v, max_v): if node is None: return True //None이 아닌 True를 반환 if min_v >= node.data or max_v
Binary Search Tree : Lowest Common Ancestor 구하기 문제링크 Input 6 4 2 3 1 7 6 1 7 Output [reference to node 4] 풀이 : 더보기 def lca(root, v1, v2): if not root: return None // BST 특성상 작은게 루트의 왼쪽에 있다면 무조건 왼쪽 탐색 if v1 root.info: return lca(root.right, v1, v2) //찾고자 하는 두개 원소가 양쪽으로 있다고 한다면, 방향에 상관없이 어쨌든 바이너리 트리이자 최소점임 else: return root