📚 Today's TODO🗃️ 스프링 입문 - 인프런✅ [섹션 1] 강의 소개 ✅ [섹션 2] 프로젝트 환경설정 (1/2) ✅ [섹션 2] 프로젝트 환경설정 (2/2)✅ [섹션 3] 스프링 웹 개발 기초 ✅ [섹션 4] 회원 관리 예제 - 백엔드 개발 (1/2)🗃️ 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터 비전 심층학습 [1부] 01장: 인공지능과 방법론 🤨 오늘 내운 내용스프링 입문 - 인프런Maven 과 Gradle의 차이?둘다 Java build tool 이다. 요즘 주류는 Gradle이라고 한다. Maven 은 xml를 사용하며 Gradle은 groovy 나 kotlin을 사용한다. Gradle이 Maven 보다 속도가 2배이상 빠르고, 플러그인이 다양하여 유연하기 때문에 주류가 ..
📚 오늘 공부한 내용✅ 풀스택 GPT - #2 Introduction✅ 풀스택 GPT - #3 Welcome To Langchain✅ Python 가상환경 관련 블로그 글 작성하기📡 새로 알게 된 내용python-dotenv - Python-dotenv reads key-value pairs from a .env file and can set them as environment variables. (출처: https://pypi.org/project/python-dotenv/)flask 사용할 때 제대로 모르고 그냥 썼는데, 좀 알아봤다. 말그래도 점(dot)env 라는 라이브러리로 os 와 같이 사용한다. os는 운영체제와 상호작용한다. 하지만 .env 파일에 접근하는 것은 불가능하다는 한계가 있다..
Python 을 실행할 때 가상환경 설정을 해야한다. ✏️ 가상환경을 설정하는 이유의존성 관리서로 다른 프로젝트가 서로 다른 버전의 패키지를 사용할 수 있다. 예: 프로젝트 A에서는 Django 3.x를, 프로젝트 B에서는 Django 4.x를 사용할 수 있음.시스템 환경 보호전역 Python 환경에 직접적으로 영향을 주지 않으므로, 의도치 않은 충돌이나 패키지 손상을 방지할 수 있다.재현 가능한 환경venv와 requirements.txt 파일을 함께 사용하면 동일한 패키지 환경을 다른 시스템에서 재현할 수 있다. 🛠️ Python 가상환경 생성하기python -m venv [env_name]// examplepython -m venv .venv해당 명령어를 입력하면 된다. 🕹️ Python 가상..
Java의 참조형과 기본형의 차이에 대해서 궁금해서 지피티에게 물어보고 내용을 검증했다.저번에 자바로 코드를 짰을 때 일부러 null 값을 허용하지 않기 위해서 Integer 가 아니라 int를 사용하는 것을 봤었다.이래서 그렇군..1. 기본형 (Primitive Type)기본형은 값을 직접 저장하는 간단한 데이터 타입입니다. Java에는 총 8개의 기본형이 있습니다.기본형 종류 및 기본값데이터 타입크기기본값예시 값byte1 byte0-128 ~ 127short2 bytes0-32,768 ~ 32,767int4 bytes0-2,147,483,648 ~ 2,147,483,647long8 bytes0L-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807float4..
Semantic Analysis 까지가 front end이고 이제 code generation 하기 전의 최적화 과정이다. [용어정리]Intermediate Representation (IR)말그대로 중간 표현 으로, 어떤 frontend, backend를 쓰는 동일한 optimizer를 쓸 수 있다.High-Level Assembly 아래 설명에서는 high level assembly를 사용한다고 가정한다.register가 무한개가 있고,control 구조는 assembly와 비슷하며operation code를 쓰나 일부는 higher level이다.IgenIR를 위한 Code generation으로 igen(e, t)이면 e를 레지스터 t로 넣는 데 필요한 코드를 뜻한다.이때 register를 무한개..
Storage Class Selection Problem레지스터 파일에 저장할지, 메모리에 저장할지 결정하는 문제보통 Global, Static들은 memory에, Local 중에 composite type(Struct, array 같은 것들)은 메모리에, 다른 것들은 레지스터에 넣는다고 한다.Optimize 할 때는 할 때는 unlimited register로 가정했고, code generation 할 때는 all memory approach로 생각했었다.근데 이제는 unlimited register가 아니라 실제 배정을 해보는 단계Recall : Liveness Analysis 이거를 다시 생각해 보는 이유는 서로 같은 시점에 live 하지 않으면 레지스터를 공유할 수 있기 때문이다.Liveness ..
Redismysql vs. mariadbnosql vs. RDMS평소 궁금했던 개념들을 정리해보려고 한다.각각 사용해 본 경험으로 적은 것은 아니니 참고..바랍니다. Redis레디스의 가장 큰 특징은 데이터들이 주 메모리에 저장되는 것이다.- 그래서 가볍고 빠르다. 디스크에서 가져오는 것보다 메모리에서 가져오는 것이 훨씬 빠르기 때문에또한 key-value 형태로 저장된다. 한줄로 정리하자면, 시스템 메모리를 사용하는 key-value 데이터 스토어이다. 이걸 어디에 쓰느냐! 캐싱, 세션관리 같은 곳에 사용해 속도를 높일 수 있다.따라서 보조 데이터베이스로 사용하면서 서비스 속도를 높이는 데 사용할 수 있다. MySQL vs. MariaDBmysql 개발자들이 나가서 mariadb를 만들었다... 이런 ..
오늘 프로젝트 백엔드 서버 구축을 위해서 이것저것 검색해 보았다. 백엔드 API를 만들어보는건 처음이어서 이게 맞나.. 하면서 검색했는데 일단 우리는 Flask를 이용해서 개발하기로 했고, JAVA에서는 DAO, DTO를 이용한 개발이 주류인 반면Python에서는 SQLAlchemy(ORM)을 사용한 개발이 더 활발해 보였다. ORM 은 Prisma 를 할 때 처음 들었는데Object Relational Mapper라고 SQL문을 작성하지 않아도 대신 알아서 작성해 준다. 대신 복잡한 쿼리문이나 성능이 안좋을 수 있다는 한계가 있지만빠른 개발에 한몫한다. 그래서 Flask 를 사용하니까 Flask-SqlAlchemy 와문서화와 편리함를 위해 flask-smorest 를 사용하려고 한다. 우테코처럼..