전체 글 (32) 썸네일형 리스트형 기반 다지기 - Docker 편 도커란?도커 공식 홈페이지에서 정의하는 도커는 아래와 같습니다.Docker는 애플리케이션을 개발, 배포, 실행하기 위한 개방형 플랫폼입니다. Docker를 사용하면 애플리케이션과 인프라를 분리하여 소프트웨어를 빠르게 제공할 수 있습니다. Docker를 통해 애플리케이션을 관리하는 것과 동일한 방식으로 인프라를 관리할 수 있습니다. Docker의 코드 배포, 테스트, 배포 방법론을 활용하면 코드 작성과 프로덕션 환경에서 실행하는 사이의 지연을 크게 줄일 수 있습니다.즉 도커는 개발, 배포, 실행할 때 필요한 어플리케이션을 인프라에 종속적이지 않게 사용할 수 있다는 것을 의미합니다.하나의 개발팀이 React, Python API 서버, PostgresSQL DB를 사용한다고 가정해볼 때, 도커가 없다면 팀의.. 기반 다지기 - Python 편 개요이번에는 Python의 구조를 알아보는 시간을 가져보도록 하겠습니다.PVM의 내부 구조Python도 Java와 마찬가지로 VM 내에서 동작하는 것으로 알려져 있습니다. 그럼 Python VM(PVM)이 어떤 구조로 되어 있고 어떤식으로 Python 파일을 실행하는지 알아보도록 하겠습니다.Python 파일이 실행될 때까지Python이 Virtual Machine에서 실행되는 것은 맞지만, .py 파일이 PVM 내에서는 실행되지 못한다고 합니다. 따라서 Java의 .java 파일이 Java Interpreter이 해석할 수 있게 .class로 1차 컴파일 되듯, Python의 .py 파일도 VM이 해석할 수 있도록 .pyc 파일로 컴파일 되어야 한다고 합니다.이렇게 .pyc로 컴파일된 파일은 Python.. 기반 다지기 - CPU, GPU, CUDA 편 CPU vs GPUCPU와 GPU의 관계는 흔히 수학 교수 1명과 초등학생 100명으로 구분되고는 합니다.그럼 CPU와 GPU가 정확히 뭔지, GPU Memory는 무엇인지 알아보는 시간을 가져보도록 하겠습니다.또 이에 이어서 GPU를 사용할 때 빠질 수 없는 CUDA 라이브러리가 어떤 역할을 하는지 알아보도록 하겠습니다.CPU와 GPU의 유사한 점CPU와 그래픽 처리 장치(GPU)는 모두 컴퓨터를 작동시키는 HW로, Processor라고 불립니다. 둘다 유사한 구조(ALU, Control Unit, Register, Cache)등의 유사한 구조를 가지고 있습니다.각 Core 당 처리할 수 있는 명령어 단위를 HW Level Thread라고 하며, HyperThreading와 같은 Simultaneous.. 직접 Language Model을 Fine-Tuning 해보고 Container 환경에 API 서버 구축해보기 개요이번에 저는 LM을 Fine-Tuning해보고 API 서버를 구축해보며 Ops의 관점에서 어느 부분이 불편하고 고민해 볼만 하는가 생각해 보는 시간을 가졌습니다. 목표는 다음과 같습니다.Model을 Fine-TuningModel을 저장하고, FastAPI 구축FastAPI를 Docker Image로 구축하고, 컨테이너로 실행시키기 Fine-Tuning하기먼저 처음으로 모델을 Fine-Tuning 해보았는데요, Dataset 까지 정제하기에는 시간이 너무 오래걸릴 것 같아 전처리 과정은 생략하고, HuggingFace의 Dataset을 가져와서 Pre-Trained Model에 학습 시키기로 결정했습니다. 따라서 사용하는 DataSet에 따라 어떤 서비스를 만들지가 결정되는데요, 저는 아래의 DataS.. 내가 백엔드 개발자에서 LLMOps로 전환을 결정하게 된 이유 개요저는 약 2주간의 고민 끝에 Java Backend 직무에서 LLMOps로 전환하는 것을 결정하게 되었는데요. 그 이유와 고민 과정을 적어보려고 합니다.고민의 시작 저는 Java Backend로 약 4년정도 공부를 했고, 취업 준비를 하고 있던 상황이였습니다. 그래서 원서도 하나 둘 넣고 있었는데요, 저는 LLM을 다루는 연구실에서 LLM의 API 서버를 만들어 본 경험이 있었기 때문에 AI Backend 직무도 지원하고 있었습니다.그러면서 자연스럽게 AI Backend 공고의 자격 조건이나 기술 스택등을 보았는데, 확실히 Java Backend와는 많이 다른 것을 알 수 있었습니다. 또 AI Backend가 아닌 MLOps나 LLMOps라는 직무도 있다는 것을 알게되었습니다.최근에 Ticketing.. 에프랩(F-Lab) Java Backend 멘토링 코스 수료 후기 멘토링을 시작하게 된 계기F-Lab은 인스타그램 광고를 통해 알게되었습니다. 비싼 가격때문에 많이 고민했지만 아직 내 기술적 역량이 많이 부족하기도 했고, 학부생 4학년임에도 불구하고 취업 준비는 하나도 준비되어 있지 않았기 때문에 F-Lab을 통해 멘토의 도움을 받아 취업 준비를 본격적으로 시작해보자는 마음을 먹고 멘토링을 하기로 결정하였습니다.멘토링은 어떻게 진행되는가?사실 F-Lab 멘토링은 대략적인 가이드라인이 있지만 멘토님께서 멘티의 역량이나 부족한 점에 맞게 최적화하는 것으로 보이는데요, 크게 멘토링은 이력서 첨삭개인 프로젝트 진행Kotlin + Spring 기반의 공연 좌석 예매 프로젝트Redis, kotest, Mail, Cache, Actuator, AOP 등 이전 까지 못써본 새로운 기.. 스프링의 핵심, IoC/DI, AOP, PSA - PSA편 PSA란?스프링의 핵심 3가지 요소 중 마지막은 PSA입니다.PSA는 Portable Service Abstraction의 줄임말로, 특정 도메인에 대해 일관성 있는 서비스 추상화를 제공함으로써 특정 모듈에 대한 의존도를 낮추어 변경이 용이하도록 하는 장점이 있습니다.대표적인 예시Spring PSA의 대표적으로는 Spring Web, JDBC, TrasactionManager 등이 있는데요.Spring Web: Servlet 의존적인 코드가 아닌 @Controller나 @GetMapping 과 같은 어노테이션 기반의 컨트롤러를 작성할 수 있습니다.JDBC : MySQLJdbcConnection, OracleJdbcConnector등의 구현체가 아닌 JdbcConnector를 통해 DB의 종류에 관계없는 .. 스프링의 핵심, IoC/DI, AOP, PSA - AOP편 Spring AOP란?AOP(ASpect-Oriented Programming)는 횡단 관심사(e.g. 로깅, 트랜잭션, 보안)등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리하는 기법입니다.Spring에서는 Proxy Pattern을 이용하여 AOP를 지원합니다. Proxy Pattern이란?Proxy Pattern은 특정 객체에 대해 접근을 제어하며. 특정 객체로 요청을 보낼 때 Proxy가 이를 가로채 특정 작업을 수행할 수 있도록 하는 기법입니다.(참고)구조를 간단하게 설명드리자면, 실제 객체(이하 Service)의 인터페이스를 구현한 Proxy를 만들어, Proxy가 Service를 참조로 가지고 있어 Client가 operation을 호출하면 Proxy의 operation이 실행되고,.. 이전 1 2 3 4 다음