티스토리

Readerr
검색하기

블로그 홈

Readerr

readerr.tistory.com/m

Readerr 님의 블로그입니다.

구독자
2
방명록 방문하기

주요 글 목록

  • [ChatGPT 이용한 프로그램 개발] 1. 개요 필요한 선행 학습 Python 기초 → 기존 AI 구현을 위해서는 선형대수, 통계, 확률, 미적분 등을 알아야 하나, 사용할 도구들(Langchain, FastAPI, Streamlit 등)에서 모델을 제공한다 배울 기술 Langchain LLM(Large Language Modelel)을 활용한 어플리케이션을 만들기 위한 프레임워크 GPT4와 연결하여 더 적은 비용, 더 많은 모듈을 사용할 수있다. Streamlit python 코드만 작성하여 HTML, CSS, Javascript를 자동 생성해주는 프로그램 Pinecone Vector형 DB Hugging Face GPT-4가 아닌 다른 모델을 가져와 사용하는 프로그램 FastAPI ChatGTP plugin을 통해 Chatgpt UI가 호출 가능 .. 공감수 0 댓글수 0 2024. 4. 21.
  • [Spring boot] Interceptor를 이용한 외부 IP 차단 프로그램 1. inittializr를 이용해 spring boot 설치 2. 의존성 추가 -- build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.velog.woong' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'or.. 공감수 0 댓글수 0 2024. 4. 21.
  • [Spring boot] Interceptor를 이용한 외부 IP 차단 프로그램 1. inittializr를 이용해 spring boot 설치 2. 의존성 추가 -- build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.velog.woong' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'or.. 공감수 0 댓글수 0 2024. 4. 14.
  • PHP 표준 권고(PSR) PSR이란? 수많은 사람들이 PHP를 사용하며, 현재는 Laravel framework가 가장 핫한 프레임워크이나, 이외에도 코드 이그나이터, 심포니, CakePHP 등 다양한 프레임워크들이 존재하며, 이 프레임워크를 사용한 다양한 코드들이 존재할 것이다. 읽기 쉽고 통일성 있는 코드를 작성하게 된다면 프레임워크 내부 함수를 직접 확인할 때, 다른 사람과 협업하고 이직할 때에도 적응하기 쉬울 것이다. 이를 위해 PHP를 사용하는 프로그래머들에게 전 세계 공통으로 하는 일종의 코딩 표준을 제시한 것이 바로 PSR이다. 실제로 프레임워크들 또한 최근 업데이트한 코드들을 PSR을 지키며 개발하고자 노력하고, 모든 표준에 맞출 수는 없겠지만, 가능한 지키고자 노력하다 보면 조금 더 깔끔하고 알아보기 쉬운 코드를.. 공감수 0 댓글수 0 2023. 7. 4.
  • [Go & Fiber] 동영상 스트리밍 구현 Go & Fiber는 이미 설치되어 있다고 가정합니다. 아니라면, 아래 포스팅을 참고해주세요. https://readerr.tistory.com/100 소스 저장소 https://github.com/WOOOOOOOONG/GO-Fiber-Streaming GitHub - WOOOOOOOONG/GO-Fiber-Streaming: 동영상 스트리밍 코드입니다. 동영상 스트리밍 코드입니다. Contribute to WOOOOOOOONG/GO-Fiber-Streaming development by creating an account on GitHub. github.com 결과 패키지 다운로드 go get -u github.com/gorilla/websocket go get -u github.com/gorilla/m.. 공감수 0 댓글수 0 2023. 7. 2.
  • [Go & Fiber] 채팅 시스템 구현 소스 저장소 https://github.com/WOOOOOOOONG/GO-Fiber-WebSocketChat GitHub - WOOOOOOOONG/GO-Fiber-WebSocketChat: 웹소켓을 이용한 채팅 코드입니다. 웹소켓을 이용한 채팅 코드입니다. Contribute to WOOOOOOOONG/GO-Fiber-WebSocketChat development by creating an account on GitHub. github.com 파일 구조 - chat.go - public - chat.html 결과 화면 백엔드 코드(chat.go) package main import ( "log" "github.com/gofiber/fiber/v2" "github.com/gofiber/websocket/v.. 공감수 0 댓글수 0 2023. 7. 2.
  • Go & Fiber framework 설치 Go 설치 공식 사이트에서 사용하는 운영체제에 맞게 다운로드합니다. 일반적으로, 설치를 모두 진행하고 나면 환경 변수 또한 자동으로 설치되며, 그래도 한 번 확인 해줍시다. 윈도우 기준, 시작을 눌러 '환경 변수' 검색 및 클릭 -> 환경 변수 편집 -> path 경로로 이동한 뒤, 본인이 설치한 경로에 따라 다음과 같이 기입합니다. (go 환경 셋팅은 가장 밑줄입니다) Fiber 설치 다음과 같이 간단하게 설치가 가능합니다. // 프로젝트 생성(저같은 경우에는 'C://dev/fiber_project' 폴더에서 실행) go mod init fiber_project // 프로젝트 이동 cd fiber_project // 프로젝트 내에 fiber 설치 go get github.com/gofiber/fibe.. 공감수 0 댓글수 0 2023. 7. 2.
  • PHP 기본 문법 요약 대상 이미 하나의 프로그래밍 언어를 아시는 분들이 대상입니다. 문법 종류 php문 정의 출력 변수 배열 type check 비교 연산자 조건문 반복문 함수 정의 및 사용 코드 내부에서만 php 코드를 작성한다. */ // 2. 주석은 일반 프로그래밍 언어들과 같다. // 3. 출력 echo '출력 테스트'; print('print로 출력해볼까'); echo 'echo로 출력해볼까'; // 출력문은 echo를 주로 사용함 echo "따옴표와 쌍따옴표는 같은 의미입니다 "; echo '문자를 합치는것은 +가 아니라 .입니다'.' '; // +는 덧셈 연산자로만 사용하기 위해 . 기호로 문자열 합침 /* 4. 변수 * 기본 선언 : $변수명 = 값; * Javascript처럼 자동으로 자료형을 결정함. */ .. 공감수 0 댓글수 0 2023. 6. 30.
  • 알고리즘을 배우는 이유와 효과 알고리즘 지식이 왜 필요한가? 바로 논리적인 사고력을 기르기 위해서입니다. 누군가는 알고리즘을 실무에 가서 전혀 도움이 되지 않는 지식이라고 말하기도 합니다. 사실 그 말들이 아예 틀린건 아닐 수 있어요. 알고리즘에서 배우는 여러 기법들이 실제 실무에 가서 쓰이는건 절대 보편적이지는 않긴 해요. 들어간 회사의 주요 서비스에 따라, 들어간 회사가 소위 말해 얼마나 좋은 회사이냐에 따라 알고리즘 기법을 몇년간 아예 쓰지 않을 수 있긴 해요. 그럼에도 불구하고 많은 기업에서 알고리즘을 중요하게 생각하는 이유가 바로 앞서 말씀드렸던 논리적인 사고력이에요. 알고리즘은 배우다 보면 천재이거나 이미 아는 문제가 아닌 이상 문제를 해결하는 방법에 가장 큰 시간을 투자해야 해요. 해결하는 방법을 명확하게 설정하지 못하고.. 공감수 0 댓글수 0 2023. 6. 28.
  • [PHP & Laravel] JWT Token 방식 구현 개요 웹 사이트에서 인증을 다룰 때는 대표적으로 세션 방식과 JWT Token 방식이 존재합니다. 둘 다 매커니즘은 쿠키로 세션ID 또는 암호화된 JWT Token를 발급받아 프론트와 백엔드간 쿠키를 주고받고 인증을 허가하는 방식이나, 세션 방식의 문제점 중 하나는 URL을 이동할 경우 세션이 만료되어 로그인을 다시 해야 한다는 단점이 존재하며, JWT Token에서는 서버에 세션 정보를 저장하지 않아 서버의 부하를 줄일 수 있고, 유효 기간과 사용 범위 등을 정해 보안적인 측면에서 확장된 제어가 가능하며, 필요에 따라 토큰에 정보와 권한을 포함시켜 인증과 인가를 분리해 관리가 가능합니다. 오늘은 그 JWT Token 방식을 PHP & Laravel에서 구현하는 방법을 알아보고자 하며, 직접 처음부터 끝.. 공감수 0 댓글수 0 2023. 6. 23.
  • 우리의 신 GPT를 영접하는 방법 참고) 원래 chatGPT에게 한글보다 영어로 물어봤을 때 더 정확한 답변을 해준다고 합니다. 그러나 저는 ‘간단한 질문을 할 때’나 ‘영어를 한글로 해석했을 때와 비슷한 말투’로 이야기했을 때는 응답이 비슷한 것 같아 한글로 물어봤습니다. 코드 분석 간단하게 다음과 같은 코드를 chatGPT에게 분석을 요구한다고 가정해 봅시다. 그럼 chatGPT는 다음과 같은 답변을 줍니다. 아주 자세하게 설명해줬고, 실수로 클래스명 첫글자 대문자 안 한것도 잡아줬네요. 이쯤되면 궁금한 내용이 하나 더 생깁니다. 그것은 바로 ‘실무단의 복잡한 코드를 해석할 수 있는가?’ 바로 테스트해보기 위해서 최근에 아주 핫한 내용인 ‘트위터 검색 알고리즘 오픈소스’를 chatGPT에게 해석을 맡겨봅시다. 저는 다음 저장소에 있는.. 공감수 0 댓글수 0 2023. 4. 13.
  • PHP 전체 개발 환경 정리 전체 구조 Language PHP (tool : PHP Storm) Framework Laravel Server AWS Docker DB MySQL (tool : workbench) 컴퓨터 OS Mac OS 그 외 github 각 항목들에 대한 기본적인 설명 PHP PHP는 가장 쉽게 웹사이트를 제작할 수 있도록 만들어진 서버 사이드 스크립트 언어이며, 배우면서 javascript와 jsp가 많이 생각이 났었으나, 둘과는 분명히 많은 차이가 존재한다. HTML 내부에서 php 구문을 사용할 범위를 지정한 후 그 안에 php 언어로 프로그래밍을 하는 방식이며, jsp와 달리 일반 프로그래밍 언어에서 사용하는 많은 기능들을 HTML 안에 지정할 수 있으며, Javascript보다 좀 더 프로그래밍 언어다운 .. 공감수 0 댓글수 0 2023. 3. 28.
  • 주니어 백엔드 개발자 스타트업 이직 후기 왜 이직? 아무래도 가장 큰 이유는 다니고 있던 회사가 꿈에 그리던 회사가 아니었기 때문이다. 중견 기업의 자회사에 첫 취직하여 워라벨도 만족하고, 주변 사람들, 상사분들 모두 좋은 분들이었으나, 연봉이 더 오르기를 바랐고, 사람들이 이름을 들었을 때 아는 회사에 다니고 싶었고, 다른 회사는 어떻게 일을 하며, 회사별로 어떤 차이점들이 있고, 기존 사용하던 기술과 다른 기술을 사용해보고 싶었다. 다니고 있던 회사가 다닐만하다고 생각해서 3년이고 5년이고 쭉 있다보면 정체될 것이라고 생각했기 때문에 이직을 결심하게 되었다. 목표하는 회사는? 첫 회사에서 사실 풍부한 경험을 쌓지는 못했고, 재직 중 쉴틈없이 공부를 성실하게 했다고 볼 수 없었기에 흔히 말하는 최상위 IT회사인 네카라쿠배당토급 회사는 갈 수 .. 공감수 0 댓글수 0 2023. 3. 28.
  • Java 프로그래머가 PHP를 시작하는 방법 들어가며 안녕하세요, Java 백엔드 프로그래머.. 였습니다. 최근 이직을 통해 PHP를 사용하는 스타트업으로 들어가게 되었는데, 지금까지 학생 때 C, C++을 배우고 실무에서 Java를 사용하며, 혹시 몰라 python, kotlin 언어들의 기본적인 문법이나 특징 들을 배웠었고, Node.js를 통해 토이 프로젝트도 하나 만들어봤어서 나름 넓은 선택지라고 생각했었는데 어쩌다보니 아예 써보지 않았던 PHP 개발자가 되려고 하네요.. 솔직히 이야기하자면, PHP에 대해 아예 모르던 입장에서 듣고 본 얘기들로만 생각했을 땐 거부감이 좀 있었습니다. 편협한 제 생각으로 PHP는 구식 언어이자 현재는 비인기 언어라고 생각했기 때문이죠. 그러나, PHP 언어로 코드 한 줄 작성해보지도 않고 판단하는건 너무 건.. 공감수 0 댓글수 0 2023. 3. 1.
  • 알고리즘 전체 요약 사전 지식 -빅오 표기법 -가장 기본적인 시간 복잡도 계산 방법 -정렬 알고리즘 지식(버블 정렬~퀵 정렬, 병합 정렬 등) -자료구조(리스트, 스택, 힙 등) -그외 여러 알고리즘 기법들에 대해 구현은 못 해도 개념은 알고 있는 정도(Brute-force 등) 알고리즘 종류 이전에 들었던 알고리즘 강의의 선생님께서는 실제 대기업 문제 출제 경험까지 있으신 분이었습니다. 그분의 말씀으로는, 단 4개의 알고리즘 기법을 제대로 알고 있으면 대회 수준이 아닌 코딩 테스트 기준으로는 모든 기업에서 출제되는 문제를 풀 수 있다고 말씀하셨습니다. 저 또한 그렇게 배웠기 때문에 4개의 알고리즘에 대해서만 정리하는 글을 작성해 보겠습니다. 링크를 통해 알고리즘을 학습해 주시기를 바랍니다. 최대한 이해하시기 쉽도록 노력하.. 공감수 0 댓글수 0 2022. 12. 21.
  • 프로그래머스] Level2 - 롤케이크 자르기 링크 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 (자세한 내용은 링크에 있는 문제를 참고하세요. 저는 풀이에 필요한 설명만 다룹니다.) 아래와 같은 문자열이 주어진다고 가정하자. [1, 2, 1, 3, 1, 4, 1, 2] 만약 절반을 자른다면 배열은 다음과 같이 두 배열로 나올 것이다. a = [1, 2, 1, 3] b = [1, 4, 1, 2] a배열에 서로 다른 숫자는 1, 2, 3로 3개이며, b배열에 서로 다른 숫자는.. 공감수 0 댓글수 0 2022. 11. 28.
  • 프로그래머스 Level2] 숫자 카드 나누기 (Python) 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 지문이 적지는 않네요. 프로그래머스에서는 영희와 철수라고 했지만, 편의상 간단하게 말씀드리자면 "배열 a, b가 있고, 특정 값(정수) c가 있을 때, a의 모든 값을 c로 나눌 수 있으며, b의 모든 값을 c로 나눌 수 없는 c의 최댓값 또는 그 반대의 값을 찾아라"입니다. 예를 들어볼게요. a = [3, 6, 9] b = [4, 10] 이 상황에서 특정 값을 3으로 둔다.. 공감수 0 댓글수 0 2022. 11. 27.
  • [Python] 이진 탐색 알고리즘의 가장 쉬운 설명 들어가며 이분 탐색을 공부하신다면 알고리즘의 기초적인 부분은 알고 있으시다고 가정하겠습니다(참고로 '이진 탐색 = 이분 탐색'입니다). 빅오 표기법과 버블 정렬을 모르는데 이분 탐색을 공부할 이유는 없으니까요. 이 글은 알고리즘의 가장 기초부터 알려드리는 글이 아니며, 곧 적을 아래의 사전 지식들을 완벽하게는 아니지만 알고 있다고 가정합니다. 알고리즘의 기초 개념부터 천천히 말씀드리는 것이 아닌, 이미 지식은 있지만 코딩 테스트 문제를 막상 잘 풀지 못하는 분이 코딩 테스트에 합격하기 위한 글입니다. 이진 탐색을 배우기 위해 필요한 사전 지식은 다음과 같습니다. 사전 지식 -빅오 표기법 -가장 기본적인 시간 복잡도 계산 방법 -정렬 알고리즘 지식(버블 정렬~퀵 정렬, 병합 정렬 등, 퀵/병합 정렬 구현은.. 공감수 0 댓글수 0 2022. 11. 18.
  • 자료구조의 전체 요약 자료구조 자료구조에 대한 기초 지식이 거의 없으시다면, 이 링크에서 학습하시는 것을 추천드립니다. Array vs LinkedList 둘 다 컴퓨터 메모리 상에 나란히 저장되어 있는 자료구조 이지만, Array의 크기는 정적, LinkedList의 크기는 동적입니다. 즉, Array는 한 번 배열 크기를 정했으면 배열을 다시 재정의하지 않는 한 크기가 바뀌지 않는다는 것이고, ArrayList는 처음 선언 시 일정 크기를 잡아주기는 하지만, 그 크기를 초과한다고 한들 재정의할 필요 없이 노드의 개수를 늘려 연결해주면 됩니다. 또한, Array는 특정 인덱스에 접근. 즉, 조회시 O(1)의 시간 복잡도를 가지며, 삽입과 삭제 후 값을 앞으로 한 칸씩 당겨오기 위해서는 O(N)의 시간이 걸립니다. Array.. 공감수 0 댓글수 0 2022. 11. 14.
  • [Javascript] 시간날 때 보는 Javascript 전체 요약 대상 자바스크립트 문법에 대해 처음부터 끝까지 알려드리는 글이 아닙니다. 이미 자바스크립트를 아는 사람이 어떤 문법이 있었는지, 어떤 요소들이 있었는지 한 번 되돌아보는 용도로 작성된 글입니다. 기본 문법 주석 -한 줄 주석 // -여러 줄 주석 /* */ -HTML 주석 변수 -변수 종류 멤버 변수(=전역 변수), 지역 변수 *변수에 대한 자료형은 존재하나, 별도 선언하지는 않음 -typeof() 변수, 함수 또는 특정 값의 자료형을 확인하는 연산자 자료형 -문자열(String) 함수 목록 : toUpperCase(), toLowerCase(), length, indexOf(), lastIndexOf(), charAt(), substring(), split() -숫자(number) 함수 목록 : Mat.. 공감수 0 댓글수 0 2022. 11. 13.
  • [Notion] 노션으로 간단하고 멋있는 디자인으로 포트폴리오 만들기 Notion 최근 개발자들 사이에서 노션의 인지도가 점점 늘어나고 있다. 스타트업부터 대기업까지 많은 사람들이 노션을 사용하고 있는데, 기존에는 MS의 OneNote를 사용하다가 넘어온 내 기준에서는 정말 만족하고 있다. 처음에는 "이제는 하다 하다 노트 앱까지 따로 배워야 되네?"라고 생각했지만, 노션은 충분히 그럴 가치가 있다고 생각한다. 포트폴리오 구글에 '개발자 노션 포트폴리오'를 검색하면 정말 잘 만든 포트폴리오들이 많이 나온다. 대부분 이력이나 수상 기록까지 화려하여, 보다 보면 조금 기가 죽기도 했었으나 남들이 얼마나 대단하든 간에 나도 내 나름의 할 일을 해야 한다는 생각에 그분들의 포트폴리오를 참고하여 나 또한 포트폴리오를 만들어 보았다. 2년간 웹 백엔드 유지보수 경험이 있으며, 퇴사한.. 공감수 0 댓글수 0 2022. 11. 13.
  • 12. 기타 알고리즘 공감수 0 댓글수 0 2022. 11. 5.
  • 11-3. 그래프 공감수 0 댓글수 0 2022. 11. 5.
  • 11-2. 그래프2 공감수 0 댓글수 0 2022. 11. 4.
  • 11-1. 그래프1 공감수 0 댓글수 0 2022. 11. 4.
  • 10. 동적 계획법(DP), 그리디(Greedy) 알고리즘 공감수 0 댓글수 0 2022. 11. 4.
  • 9. DFS, BFS, 미니맥스 공감수 0 댓글수 0 2022. 11. 4.
  • 8. 트라이, 공간분할 트리 공감수 0 댓글수 0 2022. 11. 4.
  • 7. Tree (이진탐색 트리, Red-Black 트리) 공감수 0 댓글수 0 2022. 11. 4.
  • 6. 암호화 공감수 0 댓글수 0 2022. 11. 4.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.