목록전체 글 (487)
기록하는삶
Rust의 기본적인 조건문과 반복문은 C 계열 언어와 거의 동일하다. 일부 C와 python이 조합된 것 같은.. Rust 만의 특성을 가지는 몇 가지를 살펴본다. let if변수를 지정하는 let과 조건 분기를 조합해서 아래와 같이 사용할 수 있다.use std::io;fn main() { println!("Please enter the temperature:"); let mut input = String::new(); io::stdin().read_line(&mut input) .expect("Failed to read line"); let temperature: i32 = input.trim().parse() .expect("Please type a n..
지난 글에 이어서.. 시행착오를 정리한다. Docker Compose를 기반 act_runner 활성화지난 글에서는 act_runner binary를 다운 받고, 이를 직접 실행해 daemon을 활성화 하는 방식으로 Gitea와 연결해 테스트 코드를 실행했다. 하지만 이렇게 하면 매우 기본적인 실행들 외에는 많은 제약이 발생하고, 커스터마이징 하기가 쉽지 않다. (하나만 띄울 수 있고, 직접 daemon을 매번 재실행해야 하며, 관련 로그도 보기 어렵다 등등) 따라서 Docker compose를 활용해 act_runner를 컨테이너로 실행하는 것이 좋다. Act_runner 설정 config.yaml 준비act_runner generate-config > config.yaml을 실행하여, confing...
Rust가 가지는 특별한 개념인 소유권에 대해 Copilot에게 물었을 때 아래의 답을 얻을 수 있었다. 소유권Rust의 소유권 시스템은 메모리 안전성을 보장하기 위해 설계되었습니다. 주요 개념은 다음과 같습니다:소유권(Ownership): 각 값은 특정 변수에 소유권이 있습니다. 한 번에 하나의 변수만 값을 소유할 수 있습니다.이동(Move): 소유권이 다른 변수로 이동할 수 있습니다. 이동 후 원래 변수는 더 이상 값을 사용할 수 없습니다.빌림(Borrowing): 소유권을 이동하지 않고 값을 참조할 수 있습니다. 빌림에는 불변 참조와 가변 참조가 있습니다.불변 참조(&): 값을 읽기만 할 수 있습니다.가변 참조(&mut): 값을 변경할 수 있습니다.라이프타임(Lifetime): 참조가 유효한 범위를..
오늘은 첫 글에서 hello Rust 프로젝트를 생성하고, 이를 컴파일 및 실행하면서 자동으로 생긴 리소스들 중 관심이 가는 것들을 살펴본다. Cargo.tomlCopilot에게 Cargo.toml에 대해 물으니 아래와 같은 답변을 받을 수 있었다.Cargo.toml 파일은 Rust 프로젝트의 설정 파일로, 프로젝트의 메타데이터와 의존성을 관리하는 중요한 역할을 합니다. 이 파일은 TOML (Tom’s Obvious, Minimal Language) 형식으로 작성되며, 다음과 같은 주요 섹션으로 구성됩니다 [package]name = "my_project"version = "0.1.0"authors = ["Your Name "]edition = "2021"[dependencies]my_other_proj..
배경온프로미스 구축이 용이하다는 점 때문에, Gitea를 도커 컨테이너로 띄워놓고 운영 중이다. Github actions과 유사한 기능을 Gitea에서도 사용할 수 있는데, 환경 구축과 테스트 코드 실행 과정을 정리한다. 환경 구축1) Gitea Actions 활성화Gitea 서버가 떠있는 공간에서 설정을 바꿔준다. 기본적으로는 actions 탭이 활성화 돼있지 않다.# custom/conf or config 디렉토리 내 app.ini 에 추가[actions]ENABLED = trueDEFAULT_ACTIONS_URL = https://gitea.com/gitea/act_runner# 설정 추가 후systemctl restart gitea# 혹은docker restart {gitea_container]..
목표 설정블로그에 글을 쓰며 공부한 게 언제인지.. 짬을 내서 퇴근 후에 도커와 쿠버네티스 강의를 들으면서도, 사실 짬을 내 정리하는 게 여간 어려운 일이 아니었다. 뒤쳐지지 않기 위해, 그리고 배우는 재미를 잊지 않기 위해 다시 한 번 시작해야 할 때다. 아래의 목표를 가지고 공부를 해보려 한다.생성형 AI 활용법 익히기코드도, 글도, 브레인스토밍도 이제는 생성형 AI 없이 진행하는 것이 바보다 싶을 정도로 훌륭한 초안 짜기 도구가 되었다고 생각한다. 실제 업무에서도 객체 구조를 잡거나 코드 초안의 작성, 규칙이 있는 변경사항에 대한 일괄 적용 등에 자주 활용하고 있다. 글을 쓰는 데에 Copilot을 사용해보며 chatGPT와의 차이도 느껴보고, 그 한계도 더 많이 체험해보고 싶다. 살재로 글의 뼈대..
학습 서버가 제대로 동작하고 있는지 확인하는 것은 모델링 과정에서 필수적이고, 꽤나 중요한 작업이다. 최근 사양이 좋은 서버를 담당하며 그 중요성이 더 커져서 주말에도 모니터에 로그를 띄워놓고 확인하곤 했는데, 늘 서버를 들여다 보고 있어야 한다는 것은 꽤나 고역이고,, 주말에 모니터링을 한다는 건 사실 없어야 하는 일이다. 따라서 해당 문제를 해결하고자 아래 작업을 수행했다. 현황 파악 및 목표 설정현황현재 빌더는 docker container 기반으로 실행한다. 컨테이너를 띄워놓고 그 안에서 작업이 이루어지는게 아니라, 일회성으로 (--rm 옵션) 컨터이너를 띄우고 내리기 때문에 그 프로세스가 종료 되었는지 여부가 곧 작업이 정상적으로 진행되고 있는지에 해당한다. 즉, 프로세스가 잘 살아 있는지를 알..
부스트 캠프 교육에서 잠깐 배웠고, 입사 후에는 도커 기반으로 빌더를 실행하고 있으나 정작 그 개념에 대해 제대로 이해하고 있지 못한 부분이 많았다. 도커는 효과적인 가상화 도구다,, 정도의 개념만 가지고 있었다. 이 참에 실무에 도움이 되는 선에서, 주요 개념과 활용 방법에 대해 하나씩 정리하고자 한다. What is Docker(Container)? (vs Virtual machine)Docker는 컨테이너 기반의 어플리케이션을 생성, 동작, 관리할 수 있게 해주는 오픈소스 프로젝트로, 이제는 일종의 플랫폼이자 컨테이너 기반 가상화 기술의 고유 명사가 되었다. Docker의 정의에 "컨테이너"를 언급해야만 하므로, 컨테이너가 무엇인지 이해하는 것이 결국 Docker 이해의 출발점이다. 도커 공식 문..
00. 회고에 앞서 2023년 2월 1일에 입사하여 곧 1년차를 마무리하는 시점에 회고를 위해 방치하던 블로그를 열었다. 출퇴근 길, 하루를 마무리하며 잠들기 전, 종종 맞이하는 여유로운 주말 등등의 시간에 자연스럽게 나의 일과 일상을 돌아보긴 하지만, 그래도 굳이 글로 정리해보려는 이유는 아래와 같다. 나는 기억력이 좋지 않다. 흐릿한 기억이 사라지기 전에 기록을 남기고 싶다. 목적을 가진 글을 잘 쓰는 연습을 하고 싶다. 주기적으로 쌓인 경험을 잘 엮어 정리하고 싶다. 내가 이렇게 성장해왔구나, 미래에 생각할 수 있었으면 좋겠다. 반복하면 나아질 것을 기대하며, 생각나는 키워드를 중심으로 적어보려한다. 01. 올해의 Keywords 01-1) 당장 해결하지 못해도, 외면하지 말자 누구나 그렇겠지만, ..
Redhat/CenOS 기반 업데이트 중 목차: 클릭하면 이동 1. 도움말 2. 가상환경 3. 패키지관리 4. 백그라운드 실행 5. 음성 변환 6. 파일 다루기 7. 권한 8. 명령어 [도움말/편의성] (돌아가기) # [가상 환경] (돌아가기) # [패키지 관리] (돌아가기) # [백그라운드 실행] (돌아가기) # [음성 변환] (돌아가기) # [파일 다루기] (돌아가기) # 하위 모든 txt 파일을 하나로 취합 Get-ChildItem -Recurse -Filter *.txt | Get-Content | Out-File -FilePath concatenated.txt # 하위 모든 wav, txt file 중 이름에 '@'가 들어가는 파일 이동 Get-ChildItem -Recurse -Include ..