일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- PETERICA
- minikube
- Spring
- 티스토리챌린지
- Elasticsearch
- mysql 튜닝
- CKA 기출문제
- IntelliJ
- AWS EKS
- AI
- CKA
- 정보처리기사실기 기출문제
- Linux
- 코틀린 코루틴의 정석
- Java
- CloudWatch
- kotlin
- Pinpoint
- 기록으로 실력을 쌓자
- kotlin querydsl
- Kubernetes
- 정보처리기사 실기 기출문제
- 공부
- kotlin coroutine
- kotlin spring
- aws
- MySQL
- 오블완
- APM
- 정보처리기사 실기
- Today
- Total
목록전체 글 (770)
피터의 개발이야기
ㅁ 들어가며ㅇ 지난 글, [Kotlin] Kotlin에서 Long 타입이 null일 때 기본값을 설정하는 방법에서 null 값인 경우 기본값 처리 방법에 대해서 정리하였는데, 이를 응용하여 requestDto.somethingSeq가 null인 경우를 분기 처리하는 방법은 여러 가지가 있어서 그 방법을 정리해 보았다. ㅁ 안전호출 연산자(?)와 엘비스 연산자(?:)val result = requestDto.somethingSeq?.let { seq -> // seq가 null이 아닌 경우 실행될 코드 "Sequence: $seq"} ?: run { // seq가 null인 경우 실행될 코드 "Sequence is null"} ㅁ when 표현식 사용val result = when (..
ㅁ 들어가며ㅇ 이번 글에서는 트랜스 포머 기술에 대해서 정리해 보았다.ㅇ 트랜스포머 기술은 LLM(Large Language Model)의 핵심 요소로, 여러 가지 중요한 장점을 제공합니다. ㅁ 트랜스포머: LLM의 게임 체인저 트랜스포머 아키텍처는 LLM 발전의 핵심 동력이 되었다. ㅇ 병렬 처리 능력 트랜스포머의 가장 큰 장점 중 하나는 뛰어난 병렬 처리 능력이다. 기존의 순차적 모델과 달리, 트랜스포머는 입력 시퀀스를 동시에 처리할 수 있어 학습 및 추론 속도가 크게 향상되었다. 기존의 순차적 모델에서 언어는 단어의 연관관계를 학습하기 위해서는 순차적으로 처리해야 했고, 이는 앞의 단어를 분석한 후 그 다음 글자를 분석해야하는 한계점이 있었다. ㅇ 장거리 의존성 포착 트랜스포머의 자기 주의(..
ㅁ Productivity Paradox란? 생산성 패러독스(Productivity Paradox)는 정보 기술에 대한 막대한 투자에도 불구하고 생산성 증가가 기대만큼 이루어지지 않는 현상을 말한다. 이는 1980년대 후반에 처음 주목받았으며, 경제학자 로버트 솔로우의 이름을 따서 솔로우 패러독스라고도 불린다. 이 현상은. 기술 혁신이 빠르게 진행되고 있음에도 불구하고 경제 성장에 미치는 영향이 제한적인 이유를 설명한다.ㅁ 생산성 패러독스의 원인ㅇ 측정 문제 기술의 경제적 영향을 정확히 측정하기 어려운 경우가 많다. 특히 서비스 산업에서의 기술 혁신은 전통적인 생산성 측정 방식에 잘 반영되지 않을 수 있다.ㅇ 기대와 현실의 차이 기술이 가져올 이익에 대한 과도한 기대가 실제 경제 성장으로 이어지지 ..
ㅁ 들어가며ㅇ 이 글은 멀티모달 AI에 대해 설명하며, 인간처럼 다양한 감각을 통합하여 정보를 처리하는 AI의 중요성과 가능성을 다루고 있다. ㅇ 멀티모달 AI는 텍스트, 이미지, 소리 등 여러 형태의 데이터를 동시에 처리하여 인간과 유사한 방식으로 세상을 이해하고 학습한다. ㅁ 멀티모달 AI의 필요성 기존 AI는 주로 텍스트 기반의 자연어 처리에 집중했으나, 실제 세계의 다양한 정보를 이해하기 위해서는 멀티모달 AI가 필요하다. 이는 AI가 단순한 데이터 처리에서 벗어나 인간처럼 사고할 수 있도록 돕는다. 예를 들어 기존 AI는 '남자가 말을 타고 있다'라는 문장에서 '탄다(ride)'라는 개념을 이해하지 못하고, 말의 크기가 얼마만 한 것인지, 어떤 형태로 타는 것인지 알 수가 없죠. 즉, 데이터 ..
[kubernetes] 쿠버네티스 목차ㅁ 들어가며ㅇ 쿠버네티스 환경에서 어플리케이션의 안정성과 가용성을 유지하는 것은 매우 중요하다.ㅇ 쿠버네티스의 생명 주기에 따라 발생하는 lifecycle hook과 Probe라는 기능을 제공하였다.ㅇ 이 기능의 종류와 특징을 정리하고, 컨테이너의 생명주기 동안 어느 시점에 가동되는지 테스트해 보았다. ㅁ Readiness Probe(준비 확인)ㅇ 컨테이너가 요청을 처리할 준비가 되었는지 확인한다. - 애플리케이션 초기화 완료 여부 확인 - 외부 서비스와의 연결 상태 점검 - Probe 실패 시 해당 파드로의 트래픽 차단 ㅁ Liveness Probe(오류 탐지와 해결)ㅇ 애플리케이션이 정상적으로 동작 중인지 확인한다. - 애플리케이션의 응답 상태 점검 - 문제 발생..
ㅁ 들어가며ㅇ Llama 3.1 모듈을 로컬에 설치하고 LM Studio를 통해 로컬에서 사용하는 방법을 정리하였다. ㅁ Download Ollamaㅇ Ollama를 다운받기 위해 이곳으로 이동한다.ㅇ 다운로드 후 압축을 해제하면 앱이 생성되는데, 이 앱을 실행하였다. ㅇ Coomand line 툴을 설치한다. ㅁ llama3.1 run$ ollama run llama3.1ㅇ 위 명령어를 터미널에서 실행하여 라마 모델을 실행한다. ㅇ 설치를 하면 manifest를 다운받고 CLI로 명령할 수 있게 된다. >>> 안녕안녕하세요! 어떻게 지내세요?>>> 파이썬으로 암호화 하는 코드 짜줘.암호화를 하기 위한 다양한 알고리즘과 라이브러리들이 있습니다. 파이썬에서 일반적으로 사용되는암호화 라이브러리는 `crypt..
ㅁ 들어가며ㅇ 최근 캠핑을 위한 파워뱅크를 살펴보면서 배터리 용량을 다양한 방법으로 표기하고 있어서 전력량을 가늠하기 어려웠었다.ㅇ 이번 글에서는 배터리 용량 표기법을 쉽게 이해하는 방법을 정리해 보았다. ㅁ 배터리 용량 이해하기 배터리를 물탱크에 비유할 수 있다. 물탱크의 크기가 배터리의 용량을 나타내고, 물이 흐르는 속도가 전류의 세기를 나타낸다. 즉, 큰. 물탱크(높은 용량, Wh)는 더 많은 물(전기 에너지)을 저장할 수 있으며, 물이 빠르게. 흐르면(높은 전류, A) 더 많은 물이 짧은 시간에 사용된다.소형 전자기기들은 용량을 크게 보이려는 경향이 있어 mAh를 사용하고, 일반적인 전자기기는 W(소비전력)나 Wh(전기 용량)로 표시하기도 한다.ㅁ mAh (밀리암페어시)ㅇ mAh는 배터리가 1시..
ㅁ 들어가며ㅇ 루비의 주요 문법을 다음과 같이 정리할 수 있다. ㅁ 기본 출력과 문자열puts "Hello World"ㅇ 루비에서는 puts 명령어를 사용해 기본적인 출력을 할 수 있다.ㅇ 문자열은 큰따옴표나 작은따옴표로 둘러싸서 표현한다. ㅁ 변수와 할당a = 3b = 5puts a + bㅇ 수에 값을 할당할 때는 등호(=)를 사용한다. ㅁ 메소드 정의와 호출def hi(name) puts "Hello #{name}!"endhi("Peterica")ㅇ 메소드는 def 키워드로 정의하고 end로 끝낸다. ㅁ 클래스와 객체class Greeter def initialize(name) @name = name end def say_hi puts "Hi #{@name}!" endendgree..
ㅁ 들어가며ㅇ 새로 편입한 팀에서 Ruby를 사용하고 있어서 루비(Ruby)의 특징에 대해서 정리해 보았다. ㅁ 루비란? 루비는 1995년 일본의 프로그래머 마츠모토 유키히로가 개발한 동적 객체 지향 스크립트 언어이다. 간결하고 직관적인 문법으로 유명한 루비는 "프로그래머의 생산성과 즐거움"을 목표로 설계되었다. ㅁ루비의 특징ㅇ 순수 객체 지향 루비는 모든 것이 객체이다. 심지어 정수와 같은 기본 데이터 타입도 객체로 취급한다. 이는 일관된 객체 지향 프로그래밍을 가능하게 한다.ㅇ 간결한 문법 비는 영어 문장과 유사한 형태의 문법을 가지고 있어, 코드 작성과 읽기가 매우 쉽다.puts "Hello, World!" # 괄호 없이 사용 가능예를 들어, 괄호를 생략할 수 있고, 키워드를 사용하여 더 ..
ㅁ 들어가며ㅇ Kotlin을 2024.5부터 사용하면서, [Kotlin] 널 안정성, Null safety을 정리하였다.ㅇ 실질적인 코딩을 하면서 기본값 세팅하는 방법을 정리하게 되었다.ㅇ 이번 글에서는 Kotlin에서 Long 타입이 null일 때 기본값을 설정하는 방법을 정리해 보았다.ㅁ 엘비스 연산자 (?:) 사용val nullableLong: Long? = nullval result = nullableLong ?: 0L이 방법에서는 nullableLong이 null이면 0L(Long 타입의 0)이 result에 할당된다. ㅁ 안전 호출 연산자 (?.)와 엘비스 연산자 (?:) 조합// Kotlinval nullableLong: Long? = nullval result = nullableLong?..
ㅁ 들어가며ㅇ Java Spring의 Builder 패턴은 복잡한 생성자를 편리하게 생성할 수 있게 해준다.ㅇ Kotlin은 기본적으로 Builder 패턴을 사용하지 않아도 되는 언어적 특징을 가지고 있다.ㅇ 그럼에도 특정 상황에서는 Builder 패턴을 활용할 수 있다.ㅇ Kotlin에서 Spring의 Builder 패턴을 사용하는 방법에 대해 알아보았다. ㅁ Kotlin의 언어적 특징ㅇ Kotlin은 기본 생성자와 함께 named arguments와 default parameters(기본값 선언) 기능을 제공한다. ㅇ 이 두 가지 기능을 활용하면, 자바에서 흔히 사용하는 Builder 패턴 없이도 객체를 유연하게 생성할 수 있다. // 샘플 dtodata class User( val name: ..
ㅁ 들어가며ㅇ 2019년 맥북을 사용 중인데, FCPX로 영상편집을 하는 과정에서 맥이 먹통이 되었다. ㅇ CPU의 온도가 높아지면 하드웨어 파손이 발생하기에 의도적으로 CPU가 성능제한이 걸리게 된다.ㅇ kernel_task이 CPU를 임의로 점유하여 CPU 사용을 제한하게 된다.ㅇ 이 글은 kernel_task의 역할과 이를 해결하는 방법에 대해서 정리해 보았다. ㅁ 증상ㅇ FCPX로 영상작업을 시작하면서 CPU온도가 상승하기 시작하였다.ㅇ 어느 순간 타이핑할 때 딜레이가 발생하더니 특정 기능은 느리게 작동하더니 기능이 멈취버리고 말았다.ㅇ 프로그램을 강제 종료하고 재부팅을 하였지만 상황이 개선되지 않았다.ㅇ 원인 분석을 위해 활성 상태 보기를 열어 보았더니 kernel_task가 CPU의 700%가..
ㅁ 들어가며 Spring AOP(Aspect-Oriented Programming)는 애플리케이션의 비즈니스 로직과 공통 관심사를 분리하여 코드의 모듈화를 돕는 프로그래밍 패러다임이다. 이를 통해 코드의 중복을 줄이고 유지보수성을 높일 수 있다. ㅁ AOP의 주요 개념Aspectㅇ Aspect는 여러 객체에 공통으로 적용되는 기능을 모듈화한 것이다.ㅇ 이는 어드바이스(Advice)와 포인트컷(PointCut)을 결합하여 애플리케이션에 포함되는 횡단 관심사(Cross-cutting Concerns)를 정의한다. Join Pointㅇ Join Point는 애플리케이션 실행 흐름에서 특정 포인트를 의미하며, AOP가 적용될 수 있는 모든 지점을 나타낸다. ㅇ 스프링 AOP에서는 메서드 실행 지점이 주로 Joi..
ㅁ 들어가며 AlphaGo가 기존 바둑프로그램의 한계를 뛰어 넘은 핵심을 더 깊게 이해하기 위해 인공지능에 대한 이해가 필요하다. 이 리포트는 인공지능의 역사와 알고리즘에 대해 살펴봄으로써 인공지능에 대해 이해하고, 시대적 흐름 속에서 새로운 기술적 도약을 위해 ‘PIM’이라는 컴퓨팅 기술에 대해 정리하고자 하였다. 2017년도에 인공지능에 대해 공부하고 리포트로 정리한 글로 LLM의 게임 체인저인 트랜스포머를 알기 전에 작성한 글이다.- 차례 -1. 인공지능의 정의2. 인공지능의 역사 2.1. 1차 인공지능 붐 : AI의 탄생과 한계. 2.2. 2차 인공지능 붐. 2.3. 진화연산, 단어계산 2.4. 인공지능의 역사를 통해 바라본 미래3. 인공 신경망 3.1. 인간의 뇌에 대한 모방으로서 ..
ㅁ 들어가며ㅇ 쿠버네티스 환경에서 특정 API에 대한 접근을 제한하는 방법을 정리하였다.ㅇ Ingress 규칙을 설정하여 해당 경로로의 요청을 특정 서비스로 라우팅하지 않도록 할 수 있다.ㅇ 네트워크 차단에 있어서 네트워크 정책(Network Policy)와 Ingress 리소스의 차이점도 알 수 있었다. ㅁ Ingress 리소스 생성apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: block-path-ingress namespace: defaultspec: rules: - http: paths: - path: /blocked-path/* pathType: Prefix backend: ..