개발자의 기록 노트 (153) 썸네일형 리스트형 ChatGPT : 거짓 정보를 그럴듯하게 포장해내는 인공지능 ChatGPT 라는 인공지능 언어모델 서비스가 최근 인기입니다. '언어모델' 이라는 단어에서 알 수 있듯이 사용자가 특정 언어로 질문을 하면 같은 언어로 대답을 해주는 인공지능입니다. 현재는 웹사이트에서 '문자' 로 사용가능한데, '음성-문자 변환' 기술을 잘 이어붙여주기만 하면 음성을 문자로 변환하는 것은 가능한 일이니, 곧 음성으로도 서비스 할 것 같아요. 저도 호기심에 몇번 ChatGPT사용을 해보다가, 사용을 해보니 뭔가 쓸만(?) 한 정보를 주는 것 같아서 종종 회사업무에도 활용합니다. 예를 들면 아래와 같이요. 최근에 회사에서 SMB 프로토콜을 사용하는 네트워크 파일 서버에 연결하는 안드로이드 기반 파일탐색기 앱에서 '이미지 미리보기' 기능을 구현할 수 있는지를 빠르게 검증해보라는 상사의 요구.. USB 규격 마스터링 USB(Universal Serial Bus)는 한국어로 '범용 직렬 포트' 라 번역할 수 있는 장치간 연결을 위한 표준 규격이다. 애플이 오리지널 아이맥(iMac)에 사용하기로 결정을 내린 1998년 이래로 2023년 현재까지 컴퓨터와 거의 모든 IT 장치의 표준 연결 유형으로 자리매김해왔다. USB가 등장하기 전에는 장치간 연결에 어떤 규격을 사용했었을까? ADB에서 FireWire (파이어와이어)와 SCSI (한국에서는 보통 '스카시' 불렀다)에 이르는 다양한 연결 유형이 있었다. 게다가 각각은 고유한 변형까지 있었다. USB 모양 다시 USB 이야기로 돌아와서. 대부분의 기술 표준들들이 그렇듯이 USB는 몇 년마다 새로운 버전이 출시되어왔으며, 속도, 기능부분이 점점 향상되어왔다. ‘범용’임에도 .. 웹 서비스 구조(feat. SpringBoot와 nginx) 스프링부트 개념 우선 스프링 부트. '스프링 프레임워크'의 사이드 프로젝트로 시작되어 만들어진 웹 애플리케이션 프레임워크다. Java를 기반으로 한다. '스프링 부트'가 등장하기 전 '스프링 프레임워크'가 먼저 등장했는데, '스프링 프레임워크'는 초기 환경 설정시 시간을 많이 할애해야했다. 그것을 문제로 생각한 이들이 사이드 프로젝트로 '스프링 부트' 를 만들었다. 즉, '스프링 부트' 는 '스프링 프레임워크' 를 기반으로 하지만, 엄밀히 말하면 다른 것이니 주의가 필요하다. '스프링 프레임워크'는 위와 같은 구조를 가지고 있다. Python을 이용한 Django, Ruby를 이용한 Ruby on Rails, Javascript를 이용한 Node.js 이 있다면, Java 개발자들은 스프링(=스프링 프레.. [스프링부트] 레퍼런스 문서는 필수품 스프링부트 개발을 하다보면 스프링부트 버전별로 조금씩 달라지는 것들이 있다. 내가 겪었던 문제를 예를들면, 스타터 + 자동설정이 되도록 만든 라이브러리(maven프로젝트)를 AutoConfigure 에 등록하는 것. 2.X 버전까지는 META-INF/spring.factories 파일에, org.springframework.boot.autoconfigure.EnableAutoConfigration = [추가할 클래스 전체경로] 이런식으로 해줬었다. 그런데 이게 스프링부트 3 버전 부터는 변경된 걸 모르고 그대로 했더니, key is not supported as of Spring boot 3... 이런 에러가 발생한다. 레퍼런스 문서에서 'auto-configuration' 관련 키워드로 급하게 찾아보니.. [Rust] 윈도우 환경에서 컴파일 실패 : linker link.exe not found 문제 아래는 Rust의 Hello world 출력 코드이다. fn main() { println!("Hello, world!"); } MS윈도우 환경에서, 이것을 cargo run 명령을 통해 실행해보려고 하는데 아래와 같은 에러를 만나게 될 때가 있다. error: linker link.exe not found 원인 Rust컴파일러는 MS윈도우 용 실행파일을 만들어내기 위해 MS Visual C++ Build Tools 를 사용한다. link.exe 는 컴파일된 오브젝트파일을 라이브러리들과 링크 시켜주는 빌드 툴의 하나. 그런데, 어떤 이유에서인지 이게 설치가 안된 상황이라면 이런 에러가 발생한다. Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld) err.. [Rust] main함수에서 test function 호출하는 방법? Rust에서는 unit test 를 위해 #[cfg(test)] 및 #[test] 와 같은 annotation을 사용한다. 아래와 같이 tests라는 모듈에 #[cfg(test)] 를 붙여주면, 해당 모듈은 test 를 위한 모듈이라고 선언하는 것과 같은 의미. 그런데 이걸 main 함수에서 호출할 수 있을까? main 함수에서 tests 모듈안의 open_door 함수를 호출하는 방법이 있을지 알아보았다. #[derive(Debug)] struct Door { is_open: bool, } impl Door { fn new(is_open: bool) -> Door { Door { is_open } } } trait Openable { fn open(&mut self); } impl Openable fo.. [Rust] 시작하기 - 개발 환경 만들기 Rust 시작하기 Getting started A language empowering everyone to build reliable and efficient software. www.rust-lang.org 회사에서 3일짜리 교육을 통해 Rust 언어를 학습할 기회가 생겼다. Rust 학습을 시작하는데 필요한 환경설치부터 간단한 hello world 출력 까지 진행해 보았다. Rust는 멀티플랫폼을 지원하기 때문에 MS윈도우, 리눅스나 MacOS 에서 학습환경을 구성가능하다. 내 학습 환경은 MS윈도우10 이다. Rust 언어가 무엇인지 궁금하다면? 아래 링크의 글을 참고로 읽어보길 바란다. https://www.technologyreview.kr/how-rust-went-from-a-side-proj.. pow( ) - 거듭제곱 함수 구현하기(정수 기반) 개요C언어의 수학 함수 중, 거듭제곱을 구하는 pow( )라는 함수가 있다.예를들어, 2의 10승을 계산하고 싶다면, pow(2.0, 10.0); 형태로 사용하는 함수이다.이 함수는 math.h 헤더를 include하면 사용할 수 있는 함수이다. #include double pow(double x, double y); x : 거듭제곱의 밑수y : 거듭제곱의 지수 그런데 이렇게 거듭제곱을 계산하는 함수를 직접 구현해야 하는 경우가 있었다.매우 큰 수의 거듭제곱을 계산하면서 중간중간에 주어진 특정 값으로 mod 연산(나눗셈 후 나머지 값을 취하여 반환하는 연산)을 해야 하는 알고리즘 풀이 문제였다. 문제 조건 상, pow( )를 직접 사용하면 연산속도가 느려지는 상황이라 직접 구현을 시도해 보았다. my_p.. 이전 1 2 3 4 5 ··· 20 다음