IT 취미생활.  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
'분류 전체보기'에 해당하는 글(190)
2025.10.31   2025-10-31 요즘 어때?
2023.02.15   ChatGPT란 무엇인가 ?
2022.09.01   Spring Kotlin Webflux URL 길이로 인한 413 에러 해결 (413 error)
2022.08.19   요즘은 어때?
2017.02.08   로그분석 시스템 - ELKR (ElasticSearch + Logstash + Kibana + Redis) 1
2013.09.11   새로운 코드를 볼때 마다...
2013.04.15   Linux Ubuntu 10.10 에서 필요한 필수 파일이 삭제 되었을때...
2011.09.14   Finding Memory Leaks Using the CRT Library
2011.09.05   Program Arduino with AVR-GCC
2011.09.01   새로운 장난감....
2011.09.01   ATMEGA328P-PU


2025-10-31 요즘 어때?

아직까지 직장인...

 

OTT DRM 관련 업무를 하다 

 

이제 AI Agent 개발관련 업무 경험 중

 

한동안 AI(gemini-cli)를 가지고 이것 저것 개인 프로젝트를 진행하다가 

 

요즘은 뭘해야 하나? 고민중

 



ChatGPT란 무엇인가 ?

사람의 뇌

 

ChatGPT는 인공지능 기술 중 하나인 자연어 처리 모델 중 하나입니다. 자연어 처리란, 사람이 사용하는 언어를 컴퓨터가 이해하고 처리할 수 있는 형태로 변환하는 기술을 의미합니다.

 

ChatGPT는 OpenAI라는 연구 기관에서 개발한 대화형 인공지능 모델로, 거의 모든 자연어 처리 작업에서 우수한 성능을 보입니다. ChatGPT는 머신러닝이라는 분야에서 발전한 기술을 기반으로 하며, 대규모의 텍스트 데이터를 학습하여 인간과 유사한 대화를 수행할 수 있도록 학습됩니다.

 

ChatGPT는 일반 대화부터 문서 요약, 기계 번역, 자연어 이해, 질문 답변 등 다양한 자연어 처리 작업에 적용될 수 있습니다. 이 모델을 이용하면 인간과 기계 간의 자연스러운 대화를 구현할 수 있으며, 다양한 분야에서 활용 가능합니다.

 

인공뇌

이해하기 쉽게 예를 들어보면, ChatGPT는 인공 뇌라고 할 수 있습니다. 인간의 뇌는 말을 이해하고 말하는 데 탁월한 능력을 가지고 있습니다. 마찬가지로, ChatGPT도 대화를 이해하고 생성하는 능력을 가지고 있습니다. 인간의 뇌는 학습을 통해 더욱 능숙해지듯이, ChatGPT도 학습을 통해 성능을 개선합니다. 이러한 능력을 활용하여 ChatGPT는 인간과 자연스러운 대화를 할 수 있으며, 다양한 분야에서 유용하게 활용될 수 있습니다.

 

인공지능과 함께 만들어낸 미래의 도시

 

ChatGPT는 자연어 처리 분야에서 최첨단 기술 중 하나이며, 더 나은 대화 인터페이스 개발을 위해 많은 연구가 이루어지고 있습니다. 미래에는 ChatGPT와 같은 인공지능 기술이 우리 일상에 더욱 많이 사용될 것이며, 이를 이용한 다양한 서비스와 제품들이 등장할 것으로 예상됩니다.

 



Spring Kotlin Webflux URL 길이로 인한 413 에러 해결 (413 error)

How to increase HTTP Header Size, getting 413 error

 

Get API에 413에러를 받는 경우가 발생한다. 이는 URL로 요청하는 사이즈가 스프링 네티에 설정된 max-inital-line-lenght를 넘어서 발생하는 경우이다. 

 

해결 방법으로는 applicaiton.yml을 통해 네티 설정을 하는 방법이 있지만, 확실한 방법으로  WebServerFactoryCustomizer<NettyReactiveWebServerFactor>를 받아 

maxInitialLineLength()값을 조정하여 해결 가능.

import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory
import org.springframework.boot.web.embedded.netty.NettyServerCustomizer
import org.springframework.boot.web.server.WebServerFactoryCustomizer
import org.springframework.stereotype.Component
import reactor.netty.http.server.HttpRequestDecoderSpec
import reactor.netty.http.server.HttpServer


@Component
class WebConfiguration : WebServerFactoryCustomizer<NettyReactiveWebServerFactory> {
    @Value("\${server.netty.max-initial-line-length}")
    private var maxInitialLingLength: Int = 0

    override fun customize(serverFactory: NettyReactiveWebServerFactory) {
        serverFactory.addServerCustomizers(NettyServerCustomizer { httpServer: HttpServer ->
            httpServer.httpRequestDecoder { httpRequestDecoderSpec: HttpRequestDecoderSpec ->
                httpRequestDecoderSpec
                    .maxInitialLineLength(maxInitialLingLength) // request param 최대 길이 변경
            }
        })
    }
}

 

 

위에 코드 처럼  application.yml에 해당 값을 둬서 Develop staging에 따라 설정을 overlay 시켜 사용하며, config를 통해 빌드하지  수정가능하겠다. 

 

 

출처 : https://github.com/spring-cloud/spring-cloud-gateway/issues/402

 

How to increase HTTP Header Size, getting 413 error · Issue #402 · spring-cloud/spring-cloud-gateway

The layer that calls Spring Cloud Gateway API passes some SAML tokens that are more than the default header size on Netty, and we get a 413 or 'Request entity too large' error. We tried inc...

github.com

 



요즘은 어때?

개발자는 항상 Develop 중...

 

티스토리에 오랜만에 오셨는데 무엇을 하시나요 ?

=> 임베디드 개발자에서 서버 개발자로 전직하여  모빌리티 플랫폼 개발을 하고 있습니다.

 

모빌리티라고 하면 카카오 모빌리티인가요 ?

=> 아니요. 나이가 40대중반 개발자라 카모에 가긴 투 머취합니다. 

알티캐스트 -> 알티 모빌리티로 분사한 회사에서 서버 개발하고 있습니다.  여전히 개발이 재미 있습니다. ㅎ 

 

도메인의 변화

DVB-T(ISDB) => TV => settopbox => CAS Client(KT) => Automotive OTA => Mobility Platform(Car Sharing) 

 

사용 언어의 변화 

C/C++ (13년) => JavaScript(NodeJS) (0.6 년) => Kotlin (1.5년)  

 

 

요즘 관심 분야가 무엇인가요 ?

=> Kotlin reactive 프로그래밍, 

=> 취미로는 Infra (kubernetes)를 구축해서 개인 배포 환경

=> 비지니스쪽은  예약, 빌링, 청구이고요, 주차관제 플랫폼에 관심이 있습니다.  의외로  주차 플랫폼이 모빌리티 플랫폼의 허브가 될 것으로 예상합니다.

 

 



로그분석 시스템 - ELKR (ElasticSearch + Logstash + Kibana + Redis)

로그 분석 시스템에 대한  survey 를 시작


블로그나 인터넷을 통해, 시스템 구성을 따라 해보고 있는 중


업무지만... 재미짐...




업무 이후 응용 분야에 대해 생각하니 즐거움.




새로운 코드를 볼때 마다...

보호되어 있는 글입니다. 내용을 보실려면 비밀번호를 입력하세요.



Linux Ubuntu 10.10 에서 필요한 필수 파일이 삭제 되었을때...

우분투 10.10 ( 더이상 지원하지 않는 버전) 을 사용하고 있는 중에  실수로 elfedit를 /usr/bin에서 삭제 하고 말았다. 맙소사....!!


관련된 파일은 binutils에 있어, apt-get install binutils로 복구하려고 했지만..

이미 최신버전이 설치가 되어있다는 멘트에.... 

apt-get remove binutils 로 해당 바이너리 패키지를 삭제하고 다시 설치하면 되겠지 했다. 생각하고 실행...


결과는....  오 맙소사    binutils오 관련된 모든 패키지가 삭제 되었고...

그로 인해서 gcc등 개발에 필요한 패키지도 동반 removed되었다.


너무 구버전 우분투를 사용중이어서 상위 버전 업그레이드를 하려고 하니....

업그레이드 url도 못 찾음....


이때, 제 빌드서버를 사용하고 있는 분이 어! 빌드가 안되네요. 문의가 바로 오고

저는 식은 땀을 흘리는 중에 구글 검색...



해결 방법으로...

/etc/apt/sources.lst 에  maverick 를  precise로 변경 precise는 12.04 장기 지우너 버전임.


다시 apt-get install 하면 복구 할 수 있습니다.





Finding Memory Leaks Using the CRT Library
Visual Studio를 사용시 아래 링크를 참조하면 memory leak을 쉽게 잡을 수 있습니다.

http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx


Tool을 이용하지 못 하는 경우에는,

malloc이나 free가 호출 될때 블럭 사이즈와 counter를 계산하여 free가 되지 않은 곳에
위치를 잡아두고, 프로그램이 끝날 때 출력하면 memory leak을 쉽게 잡을 수 있습니다.


static void *malloc_dbg(size)
{
    totalMemoryUsage += size;
    return malloc(size);
}

static void free_dbg(void *dst, int size)
{
    totalMemoryUsage -= size;
    free(dst);
}

void reportMemoryReport()
{
     if (!totalMemoryUsage) {
         return;
     }
     // memory leak detected! 
     //
}

뭐 대충 이런거고요.

좀도 지속적으로 써먹을꺼면, malloc 할때 #define로 malloc_dbg를 좀더 다듬어 주면 되겠네요.
malloc 위치라던지 이런걸 받아 테이블에 기억해두고 나중에 해제가 되면 테이블에서 삭제.
추후 리포트에서 memory 가 해제되지 않을을 때 출력.


기초적인 내용을 그냥 끄적 해봤습니다.

하나더 magic code를 malloc시에 넣어 buffer overflow가 발생, 메모리 경계가 넘어가는걸 체크 해보는 방법도 좋습니다.


Program Arduino with AVR-GCC


이 페이지는 Arduino IDE를 사용하지 않고  AVR-GCC toolchain을 이용하여 직접 C에서 AVR 프로그래밍을 하는 것을 보여주는 기사이다.  여기서는 bootLoader 및 setup fuse bits를 설정하는 것 까지 다룰 것이다.

아래 링크 참조.

http://www.javiervalcarce.eu/wiki/Program_Arduino_with_AVR-GCC


아무래도 Arduino를 위한 IDE를 사용하지 않고  C로만 빌드하는게, 일반 프로그래머 들에게는 더 욱 친숙한 환경이다.

Javier Valcarce's Personal Website에서 직접 C를 이용 할때 의장점을 아래와 같이 말하고 있다.

  • C lets a more accurate time and execution control. No hidden code, "What You Type Is What Is Executed" (tm)
  • C lets simple and direct access to hardware and interrupts
  • C lets you make ports to other MCUs apart than Arduino (ATmega168)

Port 번호는 가지고 있는 보드별로 다르기 때문에 data sheet를 참고 할 것.



새로운 장난감....




이걸 보고 있으면 뭔가 센서 들을 연결해서 생활 가전을 만들 고 싶어지네요.



ATMEGA328P-PU

Atmel ATmega328 8-Bit AVR® MCUs

Atmel ATmega328 8-bit AVR® microcontrollers are high-performance RISC-based devices that combine 32KB ISP Flash memory with read-while-write capabilities, 1KB EEPROM, 2KB SRAM, 23 general-purpose I/O lines, 32 general-purpose working registers, serial programmable USART, and more. Atmel ATmega328 MCUs execute powerful instructions in a single clock cycle, allowing the device to achieve throughputs approaching 1 MIPS per MHz while balancing power consumption and processing speed. These Atmel MCUs are designed for use in industrial automation and home and building automation.

Features
  • High Performance, Low Power AVR® 8-Bit Microcontroller
  • Advanced RISC Architecture
    • 131 Powerful Instructions
    • Up to 20 MIPS Throughput at 20MHz
    • On-chip 2-cycle Multiplier
  • Pin Count: 28/32
  • Max I/O Pins: 23
  • SPI: 2
  • UART: 1
  • ADC: 8 channels, 10-bit resolution
  • Analog Comparators: 1
  • Flash (Kbytes): 32
  • EEPROM (Kbytes): 1
  • SRAM (Kbytes): 2
  • Temp. Range: -40 to 85 °C
Applications
  • Home and Building Automation
  • Comfort and Control
  • Industrial Automation
  • Sensors

 






BLOG main image
취미생활
 Notice
 Category
분류 전체보기 (190)
매일매일갱생 (82)
서버개발 (1)
임베디드개발 (12)
Programming (80)
Personal Projects (6)
유용한 프로그램 (0)
 TAGS
spam mail DVB-T 티스토리 초대장 English Debug 군대 Wince5.0 C++ M480 Windows Mobile6.0 Linux Brazil C 서태지 출장 DirectShow Algorithm 영어 이메일 음식 알고리즘 Error Case DVB warning 개발자 It 퇴사 ISDB-T VC++ 1seg isdbt MP3 project Java 미라지폰 티스토리초대 Dshow debugging english email 벨소리 변경
 Calendar
«   2025/11   »
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
 Recent Entries
 Recent Comments
 Recent Trackbacks
 Archive
 Link Site
zextor
괴짜 프로그래머의 일상사~@@
Gag & Peace, and more..
Kazakhstan Almaty.......
Min-A
Sadgarret
Steve Yoon's log
가슴 뛰는 삶을 살아라
오스틴 파워
GUI sin
melanie parker_Lady
제레미의 TV 2.0 이야기..
 Visitor Statistics
Total :
Today :
Yesterday :
rss