전체 글 (48) 썸네일형 리스트형 함수형 프로그래밍 VS 객체 지향 프로그래밍 함수형 프로그래밍 vs 객체지향 프로그래밍, 무엇이 다를까? 오늘은 개발자라면 꼭 알아야 할 두 가지 프로그래밍 패러다임, 함수형 프로그래밍(Functional Programming, FP)과 객체지향 프로그래밍(Object-Oriented Programming, OOP)에 대해 알아보려고 합니다. 이 둘은 문제 해결을 위해 코드를 구성하는 근본적인 '패러다임'에서 차이를 보입니다.1. 프로그래밍 패러다임 소개프로그래밍 패러다임이란, 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 구성할지 결정하는 역할을 하는 일종의 '스타일' 또는 '사고방식'입니다. 어떤 패러다임을 사용하느냐에 따라 코드의 구조와 모양이 완전히 달라지게 됩니다.객체지향 프로그래밍 (OOP): '데이터'와 그 데이터를 처리.. 불리언대수 & 드모르간 법칙 불리언 대수 & 드모르간 법칙불리언 대수는 참(True)과 거짓(False) 두 값으로 논리를 푸는 방법이며, 코딩에서 조건문을 만들 때 사용하는 기본 원리입니다.핵심 개념AND (&&): 두 조건 모두 True일 때만 TrueOR (||): 두 조건 중 하나라도 True이면 TrueNOT (!): 결과를 뒤집음 (True -> False, False -> True) 드모르간의 법칙: 복잡한 조건문 뒤집기드모르간 법칙은 NOT (!) 연산이 괄호 안으로 들어갈 때 어떤 일이 생기는지에 대한 규칙입니다. 기억하기 쉬운 공식은 "괄호를 풀면서 AND는 OR로, OR은 AND로 바꿔라" 입니다.!(A && B)는 !A || !B 와 같다."A이면서 B인 것은 아니다" = "A가 아니거나, 또는 B가 아니다"!.. Python FastAPI와 스프링 부트 연동하기 안녕하세요! 1편에서는 Python FastAPI를 이용해 텍스트를 벡터로 변환하는 AI API 서버를 구축했습니다. 이번 2편에서는 Java Spring Boot 웹 서버에서 이 AI 서버를 호출하여 연동하는 과정을 자세히 알아보겠습니다.1. Spring Boot 프로젝트 설정먼저 AI 서버를 호출할 Java 웹 서버가 필요합니다. GitHub 저장소(hjk7902/java2ai)의 Web_Server 폴더가 이 역할을 합니다. 외부 API 호출을 위해 Spring Web 의존성이 필수적입니다. 2. AI 서버 통신 로직 구현 (RestTemplate)Spring Boot에서 외부 API를 호출할 때는 주로 RestTemplate이나 WebClient를 사용합니다. 여기서는 RestTemplate을 이.. Python FastAPI로 AI 모델 API 서버 만들기 Python FastAPI로 텍스트 벡터화 AI 서버 만들기안녕하세요! 이번 포스팅 시리즈에서는 Java Spring Boot 프로젝트와 Python AI 모델을 연동하는 과정을 처음부터 끝까지 다뤄보겠습니다. 최종 목표는 아래와 같은 아키텍처를 구축하는 것입니다.이번 1편에서는 그림의 오른쪽에 있는 AI 서버를 구축하는 데 집중합니다. Python의 FastAPI 프레임워크를 사용하여 특정 텍스트를 고차원 벡터(숫자 배열)로 변환해주는 API 서버를 만들어 보겠습니다. 1. 프로젝트 환경 설정가장 먼저 AI 서버 개발에 필요한 환경을 구성합니다.필요 도구: Python 3.8 이상, VS Code (또는 선호하는 에디터)핵심 라이브러리: fastapi, uvicorn, sentence-transform.. 알고리즘 스터디 10회차 6. 중복문자제거문제소문자로 된 한 개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.설명: 중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.입력: 첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않습니다.출력: 첫 줄에 중복문자가 제거된 문자열을 출력합니다.예시입력: ksekkset출력: kset🤔 풀이과정주어진 문자열에서 중복된 문자를 제거하되, 원래 문자들의 순서는 유지하는 문제였습니다. 여러 가지 방법이 있겠지만 저는 Java의 String 클래스에 내장된 indexOf() 메소드의 특징을 활용해서 풀어봤습니다.핵심 아이디어: indexOf()의 특징 활용indexOf() 메소드는 문자열에서 특정 문자가 가장 처음 발견되는 위치(인덱스)를.. 알고리즘 스터디 9회차 5. 특정 문자 뒤집기문제영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.입력: 첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.출력: 첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다.예시입력: a#b!GE*T@S출력: S#T!EG*b@a🤔 풀이과정문자열 안에서 영어 알파벳만 골라서 뒤집고, 특수문자는 원래 자리에 그대로 두는 문제였습니다.이 문제는 Two Pointers (두 개의 포인터) 알고리즘을 사용하면 효율적으로 풀 수 있습니다. 문자열의 맨 앞과 맨 뒤에서 각각 출발하는 두 개의 포인터를 사용하는 방식이죠.초기 설정:먼저 문자열을 수정할 수 있도록 char 배열로 변환합니다. Str.. TMDb API로 영화 데이터 DB에 저장하기 오늘은 외부 API인 TMDb(The Movie Database)에서 영화 정보를 가져와, 우리 서비스의 데이터베이스에 저장하는 전체 과정을 정리해보려고 합니다.이 포스팅에서는 Spring Boot 환경에서 최신 비동기 HTTP 클라이언트인 WebClient를 사용하여 효율적으로 데이터를 가져오고, JPA를 통해 데이터베이스에 저장하는 방법을 다룹니다.1. 전체 아키텍처데이터 흐름은 다음과 같습니다. Controller가 작업을 시작시키면, Service가 WebClient를 통해 TMDb API를 호출합니다. 받아온 JSON 데이터는 DTO에 매핑된 후, DB에 저장될 Entity 형태로 변환되어 Repository를 통해 저장됩니다.흐름도: API 호출 (Controller) ➔ 비즈니스 로직 (Se.. Nginx로 프론트엔드와 백엔드 배포하기 프로젝트를 배포하다 보면 이런 고민에 빠지게 됩니다. "사용자에게 보여줄 프론트엔드(React, Vue 등)와 데이터를 처리하는 백엔드 API(Spring Boot, Node.js 등)를 어떻게 하나의 도메인으로 서비스할 수 있을까?", "사용자가 안전하게 https로 접속하게 하려면 어떻게 해야 할까?"이 모든 질문에 대한 훌륭한 해답이 바로 Nginx입니다. 이번 글에서는 Nginx의 핵심 개념을 알아보고, 저희 MoodFlix 프로젝트에서 어떻게 Nginx를 '교통을 정리하는 경찰'처럼 활용하여 프론트엔드와 백엔드를 연동하고 HTTPS를 적용했는지 그 과정을 공유해 드립니다.Nginx란 무엇인가? 핵심 개념 짚어보기Nginx는 텍스트 기반의 설정 파일을 수정하여 동작을 정의합니다. 그 구조는 생각보.. 이전 1 2 3 4 ··· 6 다음