본문 바로가기

Programming120

Spring Boot Model validation 관련 애노테이션 베하! 새로운 한 해가 시작되었습니다. 저도 아직 마음만 먹고 시작을 하지 못했답니다. ㅠㅠ 하지만 반드시 새해라고 무언가를 해야한다는 압박에서 벗어나서 늘 잘해왔던 여러분들이 이번 해도 똑같이 꾸준하기만 한다면 다른 목표를 달성하는 것보다 더 좋은 여러분과 제가 되지 않을까 생각합니다. 시작말 오늘 들고 온 이야기 주제는 Spring boot에서 웹 백엔드를 개발할 때 객체를 통해 Request를 받아 처리하는 경우가 많죠? 그럴 때 우리는 model 혹은 vo, dto class에 valid 애노테이션에게 알려줄 제한사항을 쉽게 설정해서 유효성을 검사하기도 합니다. 저는 그 유효성 검사를 도와주는 애노테이션들을 가볍게 정리하려 합니다. 사실 진작에 알았다면 굳이 controller나 service 레.. 2024. 1. 12.
Overloading과 Overriding의 차이 베하! 새로운 한 해가 시작되었습니다. 모두들 2024년도 힘찬 시작을 하셨나요? 오늘 들고 온 이야기 주제는 오버로딩(Overloading)과 오버라이딩(Overriding)의 차이입니다. 객체 지향 프로그래밍에서 다형성은 같은 이름의 메서드나 연산자가 다른 클래스에 대해 다른 동작을 하도록 하는 것을 말합니다. 이것을 구현할 때 오버로딩, 오버라이딩 한다. 라고 할 수 있습니다. 이러한 오버로딩과 오버라이딩이 무엇인지 좀 더 자세히 알아보고 차이를 이해하는 시간을 가져봅니다. 오버로딩(Overloading) 오버로딩의 개념 메소드 오버로딩은 같은 이름의 메소드가 매개변수의 수나 타입에 따라 다르게 동작하는 것을 말합니다. 즉, 동일한 메소드 이름을 가지지만 서로 다른 시그니처를 갖는 메소드를 여러 개.. 2024. 1. 5.
virtualenv 명령어 실행 또는 가상환경이 생성되지 않는 경우 안녕하세요, 이번에는 Windows환경에서 Python 개발환경을 구축할 때 겪은 문제 및 해결방안에 대해 공유드리겠습니다. virtualenv 명령어 실행이 안되는 경우 다음 명령어를 이용해서 virtualenv를 설치하고, 가상환경을 생성하려고 하는 경우에 virtualenv를 참조할수 없다는 에러가 나오는 경우가 있습니다. pip install virtualenv virtualenv [env name] #ex) virtualenv venv이러한 경우에는 다음 명령어를 통해서 실행하실수 있습니다. python -m virtualenv venv이러한 근본적인 문제해결은 관리자 권한(root)으로 Shell또는 Powershell을 실행하시고, 재설치를 진행하시면 됩니다. pip uninstall vir.. 2024. 1. 5.
LLM 이란? 안녕하세요. 할배즈..입니다. 오늘은 LLM (Large Language Model)에 대해 알아보겠습니다. LLM 이란? Large Language Model은 딥러닝의 한 종류인 인공 신경망을 기반으로 한 자연어 처리 모델입니다. 이 모델은 수억 개의 파라미터로 구성되어 있으며, 이를 통해 많은 양의 텍스트 데이터를 학습하여 문장의 의미를 이해하고 다양한 언어 작업을 수행할 수 있습니다. 라지 랭귀지 모델은 GPT-3(Generative Pre-trained Transformer 3)과 같은 대규모 모델이 대표적입니다. Large Language Model 기능과 특징 다양한 언어 작업에 적용 가능 Large Language Model은 기계 번역, 요약, 질의응답, 자연어 이해 등 다양한 언어 작업.. 2024. 1. 5.
Python Pandas 베하~! BTC_녹차공원 팀의 하동녹차 입니다. 이번주는 Python Pandas 에 대해 알아 보겠습니다. Python Pandas Pandas는 Python에서 데이터 분석과 처리를 위한 라이브러리 입니다. 주로 테이블 형태의 데이터를 처리하고 분석하는데 사용되며, 빠르고 유연한 데이터 구조를 제공하며 특히, 빅 데이터를 처리하거나 복잡한 데이터 분석 작업을 수행할 때 효과적입니다. Pandas 주요 특징 1. 데이터 구조 Pandas의 핵심 데이터 구조는 Series와 DataFrame입니다. Series: 1차원 배열과 유사한 자료구조로, 인덱스를 갖습니다. DataFrame: 2차원 테이블 형태의 자료구조로, 여러 개의 Series를 포함하며, 각 열은 다른 데이터 타입을 가질 수 있다. 2. .. 2024. 1. 2.
Python Flask 란? 베하~! BTC_녹차공원 팀의 하동녹차 입니다. 이번주는 Python Flask 에 대해 알아 보겠습니다. Python Flask Python은 다양한 라이브러리와 프레임워크 덕분에 많은 개발 영역에서 사용되고 있습니다. 특히, 웹 개발 분야에서는 Django, Flask 등 여러 프레임워크가 주목을 받고 있는데요, 이번 포스트에서는 그 중에서도 Flask에 대해 알아 보겠습니다. Flask의 개요 Flask는 2010년에 Armin Ronacher에 의해 개발되었으며, Python으로 작성된 경량화 웹 애플리케이션 프레임워크입니다. 특징 및 장점 마이크로 프레임워크 Flask는 기본적인 기능만을 제공하며, 필요한 확장 기능은 개발자가 선택하여 추가할 수 있습니다. Jinja2 템플릿 엔진 동적 웹 페이.. 2023. 12. 22.
[MyBatis] Collection과 Association 안녕하세요, BTC 블랙아웃입니다! 오늘은 Java 개발자들 사이에서 널리 사용되는 ORM 프레임워크인 MyBatis에서의 두 핵심 개념, Collection과 Association에 대해 깊이 있게 탐구해보겠습니다. 이 두 개념의 이해는 복잡한 데이터 관계를 MyBatis와 함께 효과적으로 다루는 데 필수적입니다. 1. MyBatis란? MyBatis는 Java 언어를 위한 ORM(Object-Relational Mapping) 프레임워크로, 객체와 관계형 데이터베이스 간의 매핑을 쉽고 효율적으로 관리할 수 있게 해줍니다. SQL 문을 XML 또는 어노테이션을 사용하여 관리하며, 개발자가 SQL을 보다 세밀하게 제어할 수 있게 해줍니다. 2. Association과 Collection의 개념 Assoc.. 2023. 12. 22.
Spring boot API ExceptionHandler 안녕하세요. 여러분 12월의 마지막이 다가오고 2023년의 마지막이자 2024년의 시작이 다가옵니다. 일단고 팀의 많은 글들이 도움이 되셨을지 궁금합니다. 그리고 이제 일단고 팀의 테크 블로그는 내년에도 볼 수 있을지.. ㅠㅠ 오늘 기술적인 부분을 마지막으로 업로드해볼까 합니다. 얼마전 API를 개발하고 사용하면서 예기치 못한 에러가 발생했습니다. 초보 개발자인 저는 깜짝 놀랐는데요. 특정 상황에 대한 예외처리가 부족했고 client가 응답받기 위한 응답을 정의하지 않아 client가 적절히 처리하기 어려웠습니다. 그래서 오늘은 Spring boot에서 ExceptionHandler를 이용해 Controller나 service에서든 예외에 대한 적절한 대응하는 방법을 말하고자 합니다. 1. Excepti.. 2023. 12. 22.