오늘도 기록하는 중 GitHub

전체 글 192

M4 Pro With 24GB RAM으로 LLM 실행하기

M4 ProModel Name: MacBook ProChip: Apple M4 ProMemory: 24 GB12코어 CPU(성능 코어 8개 및 효율 코어 4개)16코어 GPU하드웨어 가속형 레이 트레이싱16코어 Neural Engine273GB/s 메모리 대역폭 요즘 LLM에 관심이 많아서 여러 모로 찾아보며 공부하고 있다. 나는 2070 super를 탑재한 데스크탑을 직접 조립해서 사용하고 있지만 이 사양으로는 LLM을 돌리기엔 택도 없다...그래서 위와 같은 사양의 맥북 프로를 앞으로 학습과 여러 테스트에 이용할 생각이다! 가장 처음엔 로컬 환경에서 LLM을 실행시켜보도록 하겠다. 시스템 요구사항대규모 언어 모델을 로컬에서 실행시키려면 그만한 시스템 사양을 갖춰야 한다. 원래 일반 PC에서는 4090..

Insight 2025.03.14

네트워크 - 소켓, 리눅스 네트워크 관리

소켓(Socket) 통신 개요소켓은 네트워크 상에서 두 프로그램 간의 양방향 통신을 위한 엔드포인트를 의미한다. 이는 포트 번호에 바인딩되어 TCP 레이어에서 데이터가 전달되어야 하는 애플리케이션을 식별할 수 있게 한다. 여기서 엔드포인트란 IP 주소와 포트 번호의 조합을 의미한다.소켓의 기본 요소프로토콜 체계소켓은 다양한 프로토콜을 지원하며, 주요 프로토콜은 다음과 같다:PF_INET: IPv4 기반 인터넷 프로토콜PF_INET6: IPv6 기반 인터넷 프로토콜PF_LOCAL: UNIX 시스템 내 로컬 통신 프로토콜PF_PACKET: 저수준 패킷 기반 소켓PF_IPX: 노벨 네트워크 프로토콜소켓의 유형TCP 소켓(스트림 소켓): 연결 지향적이며 신뢰성 있는 데이터 전송을 지원한다. 서버는 클라이언트의 ..

CS/네트워크 2025.03.13

네트워크

네트워크네트워크는 분산돼 있는 컴퓨터들이 자원이나 정보를 공유하기 위해 통신망으로 연결한 시스템이다. 이는 현대 정보 기술의 근간이 되는 핵심 인프라로, 인터넷의 기본 구조를 형성하는 요소이다.네트워크의 주요 특징컴퓨터 네트워크는 다음과 같은 특징을 가지고 있다:지리적 장소의 제약 없이 모든 종류의 물리적·논리적 자원을 효율적으로 공유할 수 있다.여러 컴퓨터가 동시에 작업을 수행하는 병렬 처리가 가능하여 컴퓨팅 성능을 대폭 향상시킨다.데이터와 정보의 실시간 교환이 가능하여 협업과 통신 효율성을 극대화한다.누구나 접근할 수 있는 개방성으로 인해 중요한 보안 문제가 발생할 가능성이 있다.네트워크 확장성이 용이하여 새로운 장치를 쉽게 추가하고 연결할 수 있다.네트워크 주소네트워크 주소는 네트워크 상에 존재하는..

CS/네트워크 2025.03.11

클라우드 컴퓨팅 아키텍처

작업 부하 분산 아키텍처워크로드 분배 아키텍처라고도 한다. IT 자원의 과잉활용과 활용 부족 문제를 해소한다. 클라이언트에게 비롯되는 트래픽을 로드밸런서를 통해 가용할 수 있는 서버에 분산 및 전송하여 처리한다.자원 풀링 아키텍처하나 이상의 자원 풀을 활용하는 것을 기반으로 한다. IT 자원들이 자동으로 동기화되도록 보장하는 시스템에 의해 그룹화 및 유지 관리된다.→ 사용자가 필요에 따라 자원을 할당받고 사용 후 반환하는 방식으로 운영된다.동적 확장 아키텍처클라이언트의 요청이 서버의 수용도를 넘어간다면 자동 확장 리스너가 이를 감지해 자동으로 자원을 조정한다. 물리적 자원을 수정하거나 인스턴스(SW) 갯수를 조정하는 방식이다.예시로 쿠버네티스가 있다.동적 수평 확장 : 워크로드를 처리하기 위해 IT 자원..

Cloud 2025.03.10

클라우드 컴퓨팅의 개념

클라우드 컴퓨팅클라우드 컴퓨팅은 인터넷을 통해 컴퓨팅 자원을 제공하는 기술이다. 사용자는 물리적 서버를 직접 관리할 필요 없이, 클라우드 서비스 제공업체를 통해 컴퓨팅 파워, 스토리지, 네트워크 등의 리소스를 이용할 수 있다. 이 기술은 기업 및 개인 사용자에게 높은 확장성과 비용 절감 효과를 제공한다.클라우드 컴퓨팅의 단점1. 보안 및 프라이버시 우려클라우드 환경에서는 데이터가 외부 서버에 저장되므로 보안 문제가 발생할 수 있다. 특히, 민감한 정보가 포함된 경우 적절한 암호화 및 접근 제어가 필요하다.2. 인터넷 의존성클라우드 서비스는 인터넷 연결이 필수적이다. 따라서 네트워크 장애가 발생하면 서비스 이용이 불가능할 수 있다.3. 제한된 제어 권한클라우드 인프라는 서비스 제공업체가 관리하며, 사용자는..

Cloud 2025.03.07

[9184] 신나는 함수 실행

https://www.acmicpc.net/problem/9184문제 설명재귀 함수를 사용해 정의된 함수 w(a, b, c) 를 효율적으로 계산하는 문제를 해결한 코드이다.해당 함수는 다음과 같은 규칙을 따른다.기저 조건:만약 a, b, c 중 하나라도 0 이하이면, w(a, b, c) = 1이다.상한 조건:만약 a, b, c 중 하나라도 20보다 크면, w(a, b, c) = w(20, 20, 20)로 계산한다.특수 조건:만약 a 그리고 b 인 경우,w(a, b, c) = w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c)로 계산한다.일반 조건:위의 조건에 해당하지 않는 경우,w(a, b, c) = w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b,..

기록/알고리즘 2025.02.12

[10844] 쉬운 계단수

문제 설명길이가 N인 계단 수의 개수를 구하는 문제이다. 계단 수란, 0으로 시작하지 않으며, 인접한 모든 자리의 차이가 정확히 1인 수를 의미한다. 예를 들어, N=2일 때 가능한 계단 수는 다음과 같다. 길이 2의 계단 수: 10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98 총 개수는 17개이다. 🔹 문제 요구사항N이 주어졌을 때, 길이가 N인 계단 수의 개수를 10^9로 나눈 나머지를 출력해야 한다. 문제 풀이동적 계획법과 재귀를 이용해 해결해야 한다.동적 계획법(DP)과 메모이제이션의 활용DP 테이블의 정의dp[loc][val]dp[loc][val]_은 **길이가 loc이고 마지막 자릿수가 val인 계단 수의 개수_를..

기록/알고리즘 2025.02.10

[11054] 가장 긴 바이토닉 수열

BOJ11054: 바이토닉 수열 - 가장 긴 바이토닉 부분 수열 구하기https://www.acmicpc.net/problem/11054설명1. 문제 개요입력된 수열에서 각 위치를 기준으로: 왼쪽 방향으로 증가하는 부분 수열을 계산한다. 오른쪽 방향으로 증가하는 부분 수열을 계산한다. 두 값을 합하여 가장 긴 바이토닉 부분 수열의 길이를 구한다. 2. 주요 변수와 데이터 구조 static int[] sq, dpr, dpl;sq: 원본 수열을 저장하는 배열. dpl: 각 위치에서 왼쪽 방향으로 증가하는 부분 수열의 길이를 저장하는 배열. dpr: 각 위치에서 오른쪽 방향으로 증가하는 부분 수열의 길이를 저장하는 배열. 3. 코드 동작 원리 1) 입력 처리 및 초기화: BufferedRea..

기록/알고리즘 2025.01.24

Cline - AI 에이전트

AI 에이전트에 대해취미가 여러 가지 있는데 요즘은 AI 에이전트에 대해 찾아보고 관련한 여러 기술을 다뤄보는 걸 하고 있다. 이런저런 정보를 찾아보고 있었는데 DEVIN에 대해 다룬 글을 우연히 보게 됐다. 결론만 말하자면 구매 가능한 기본 크레딧이 500달러부터 시작인데 시니어 개발자 수준의 업무는 아직 완벽하지 않다고 한다. 심지어 작업을 얼마 돌리지도 않았는데 그 크레딧도 순삭되더라.. 어쨌든 비교 대상에 GPT와 Cline이 있었다. 그 중 Cline이 작업 중에 생긴 API 요금이 가장 적었다. 적은 비용으로 효율적인 작업을 한다는 내용을 보고 궁금해졌다. 직접 내 눈으로 확인해보자 싶었다. Cline ai?먼저 Cline ai에 대해 알아보자. Cline은 Visual Studio Code에..

Insight 2025.01.23

[24511] queuestack

코드 설명1) 주요 변수와 클래스 선언:import java.io.*;import java.util.*;public class BOJ24511 { static Deque qs; static int n, m;qs: 프로그램의 핵심 데이터 구조인 Deque를 저장하는 변수다.n: 초기 데이터의 개수를 저장하는 변수다.m: 추가 작업에 사용할 데이터 개수를 저장하는 변수다.2) 메인 로직 구현:public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine(..

기록/알고리즘 2025.01.22
반응형