전체 글 217

using문과 IDisposable을 이용한 리소스 해제

c#코드를 보면 심심찮게 using문을 볼 수 있다.using (var connection = new SqlConnection(connectionString)) { ...} using문을 사용하면 변수의 범위를  using 코드 블록으로 지정하여 using 블록을 완료하면 자동으로 폐기한다. 이 예에서 SqlConnection 유형의 연결 변수는 using 문의 닫는 대괄호에 도달하면 가비지 수집 준비가 된 것으로 지정된다. C#은 가비지 수집기가 있는 관리형 언어이기 때문에 가비지 수집기가 이를 대신 처리한다. 즉, C와 같은 비관리형 언어에서처럼 수동으로 메모리를 할당하고 할당 해제할 필요가 없다.하지만 가비지 컬렉터가 혼동할 수 있는 경우 가비지 컬렉터에게 도움을 줄 수 도 있어야 된다 예를 들어..

기초부터 배우는 최신 스토리지 입문 [도서리뷰]

전자기기를 사용하는 모든 사람들이라면 데이터의저장과 백업은 너무나도 중요한 부분임에 공감하실 겁니다.모든 데이터의 저장은 스토리지에서 시작되는데, 이 스토리지를 제대로 관리하지 못하면나의 전자기기에서의 모든 활동이 제로가 될 수 있습니다.알게모르게 이러한 스토리지를 우리는 일상적으로 사용하고 있습니다. 특히 대용량의 데이터를 다루는 엔지니어나 개발자들은 이에 민감할 수 밖에 없을 겁니다.그래서 스토리지를 제대로 배워 잘 다루는게 중요합니다. 은 스토리지를 처음배우거나 복습하고 싶은 IT엔지니어들을 대상으로 만들어진 책 입니다.책은 우리가 일상적으로 사용하는 스토리지부터, 네트워크, 그리고한단계 나아가는 클라우드 및 쿠버네티스 등의고급 스토리지에 대해서도 면밀히 다루어 주고 있습니다.   로컬 스토리지의 ..

카테고리 없음 2024.12.14

[Linux]장치 이름 고정하기

리눅스에서 포트에 USB로 장치를 연결하면 ttyUSB0 과 같이 이름이 할당된다.한 개의 장치만 연결한다면 크게 문제가 되지 않지만, 여러 개의 장치를 연결할 경우 연결된 순서대로 ttyUSB0 , ttyUSB1 , ttyUSB2 ...와 같이 이름이 부여된다. 하지만 위와 같이 순서대로 입력 될 경우, 각 장치가 어떤 장치인지 알기 어려우며, 여러번 테스트 과정중 장치가 꼬인다면 명령어를 반대로 보낼 수 있다. 따라서 장치에 이름을 부여해서 장치를 고정하는 방법을 알아보고자 한다. 1. 고유 시리얼 이름 알아보기 해당 명령어에서 ${device}에 인식하고자 하는 이름을 써주면 된다. ex) ttyUSB0, ttyUSB1 등udevadm info --attribute-walk --name=/dev/$..

비전공자를 위한 AWS - 클라우드 입문부터 자격증 취득까지 쉽게 배우는 AWS <도서리뷰>

최근 대부분의 IT 프로젝트 들에서 서비스 기반 프로젝트들을 보면,웹 개발 외에도 반드시 들어가야 될 기술이 클라우드 기술입니다.IT서비스를 하는 스타트업 부터 카카오, 네이버 등 대규모 IT 서비스 회사까지 대부분 클라우드 서비스에 일부 혹은 전부를 의존해서 서비스를 배포하는 추세 입니다.따라서 기존 인프라 엔지니어들을 제외하고도,웹 개발, DBA, AI 엔지니어 등, 많은 개발자들이 클라우드를 공부하고 있습니다.하지만 클라우드 서비스는 복잡하고 그에 대한 개념도 빠르게 변화하고 새롭게 출시되고 있어서기존 IT업계에 몸담고 있는 사람들도 쉽게 적응하기 어렵습니다.하지만, 클라우드 서비스를 제대로 이해하고, 다양한 서비스를 잘 조합할 수 있어야 사용에 대한 과도한 비용 청구나 정보유출과 같은 사고를 막을..

FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처[도서리뷰]

FastAPI는 파이썬 백엔드 프레임워크로 플라스크와장고와 더불어 크게 인기를 얻고 있는 프레임워크 입니다.특히, API를 작성하는데 굉장히 쉽고 탄탄하게작성할 수 있도록 기능을 제공해주고 있습니다. 이런 간단한 구조를 통해 클린 아키텍처를 적용하기 용이한데요,클린 아키텍처란 '추상화 개념'(Abstraction principle)으로써 관심사를 분리시키고 의존도를 낮추는 것에 목적을 둔 아키텍처입니다.  좀 더 쉽게 말하면 각 기능 별로 의존도를 낮추고 서로에게 미치는 영향을 감소시킴으로써 유지보수를 더욱 쉽게 만들어주는데 그 목적이 있습니다.개발을 하다보면, 처음 코드를 작성할 때에는 이에 대해 크게 와닿지 않는 고려사항입니다.  하지만 기능이 점차 추가되고, 프로그램이 복잡해 질수록 와닿게 되는 개..

소프트웨어 개발에 ChatGPT 사용하기 - 제이펍 [도서리뷰]

"AI 시대가 오면 더이상 개발자는 필요 없게 된다."뉴스 기사, 칼럼, 유튜브 영상 등 굉장히 많이 볼 수 있는 주제 입니다하지만 LLM 모델을 자주 사용해본 사람들이라면 적어도 지금은 그러지 않을것 이라는 것을 알 수 있을 것입니다.그렇다면 AI모델을 서포터의 역할로 대하며, 개발에 도움을 받는것은개발자가 할 수 있는 최적의 답이라고 생각할 수 있습니다.그렇다면 소프트웨어를 개발하는 개발자들이어떻게 하면 최적의 도움을 받을 수 있을지 고민하는 개발자들이 많을 것입니다.는그러한 개발자들에게 지침서가 되줄 수 있는 책입니다. 이 책은 현재 나온 AI모델 중 가장 인기가 많은 ChatGpt를 통해어떻게 개발을 효과적으로 할 수 있는지 자세하게 설명해주고 있습니다.저자가 생각하는 효과적으로 ChatGPT를 ..

JAX/Flax로 딥러닝 레벨업 - 제이펍 [도서리뷰]

최신 LLM 모델들을 공부하시다 보면JAX, Flax 라이브러리를 많이 들어보셨을 거라 생각합니다.JAX와 Flax는 아직 딥러닝 모델 시장에서 활성화 되지는 않았지만, 시장을 잠식해가고 있는 메타플랫폼스의 파이토치에대항마로 구글에서 최근에 밀어주고 있는 라이브러리 인데요,JAX와 Flax는 각각 2018년, 2020년에 구글리서치에서 개발하여 사용하고 있습니다.  지은이들은 모두의 연구소 'JAX/ Flax LAB'로 구성된 멤버분들이라고 합니다.모두의 연구소는 여러 LAB을 운영하면서,AI에 관한 여러 LAB을 운영하는 걸로 유명한데요,현업자들과 연구자분들이 뭉쳐서 책을 지으셨다고 합니다. 모두의 연구소의 풀잎스쿨을 여러번 참여한 경험이 있었는데요,다들 열정이 넘치고 적극적으로 활동해주셨던 분들이 많..

기본기가 탄탄한 자바 개발자(제 2판) - 제이펍 [도서리뷰]

대한민국은 자바공화국이라고할 정도로 java가 많이 쓰입니다.이유는 전자정부프레임워크 표준프레임워크 포털 eGovFrame본문 내용 바로가기 대메뉴 바로가기 소개 구성 구성상세 버전별 구성 오픈소스 SW 현황 아키텍쳐 라이선스 적용사례 추진성과 기술지원내역 컨트리뷰션 센터소개 지원서비스 적용지원 서비스www.egovframe.go.kr에서 정부 및 공공기관, 공기업 등의 웹사이트에 자주 쓰이는 공통 기능들을 Java의 Spring 프레임워크와 유명 Java 라이브러리(MyBatis, Jackson, Apache Commons 등)를 가지고 미리 만들어 놓은 가이드를 통해 웹개발을 많이 진행하고 있어서 그렇습니다.(개발자로 취업을 하고 싶다면 java와javascript를 공부하라고 많이 하죠ㅠ) 하지만,..

러스트 프로페셔널 코드 - 제이펍 [도서리뷰]

러스트 맛집 제이펍에서 이번에 신간을 출시 했습니다. 입니다.러스트 언어는 최근 몇 년간 많은 주목을 받고 있는데요,2024년 2월 백악관에서 C와 C++의 사용 중단을 권고하는내용의 보고서를 발간했던 사건이 유명하죠,당시 C와 C++의 안전성에 대해 지적하며,안전한 프로그래밍언어로 러스트를 언급했습니다.https://www.ciokorea.com/news/327256 백악관, 'C'와 'C++' 사용 중단 촉구··· 전문가들 "시의적절한 권고"바이든 행정부가 버퍼 오버플로 및 기타 메모리 액세스 취약성을 유발하는 프로그래밍 언어에서 벗어날 것을 촉구했다. Image Crwww.ciokorea.com 러스트는 여러가지 특성이 있는데요,1. 메모리 안전성: 러스트는 컴파일 시간에 메모리 안전성을 강제하며...

[python] Flask 배포하기

웹 서버와 SGI 웹 서버란 실제로 사용자의 요청을 받고 응답을 주는 엔진엑스(Nginx), 아파치(Apache) 등을 말하며, 네트워크 통신의 전반적인 부분을 담당한다.Nginx, 아파치와 같은 웹서버와 플라스크 애플리케이션 등 웹 애플리케이션 사이에서는 통신이 필요하다. 서버 게이트웨이 인터페이스(SGI)가 바로 그 통신 규약, 이 규약을 통해 웹 서버는 사용자의 HTTP 요청을 웹 애플리케이션에 전달하고, 애플리케이션의 응답을 다시 사용자에게 전달한다. 플라스크에서의 SGI는 그중에서도 플라스크 웹 애플리케이션과 웹 서버 사이의 통신 방식만을 정의한다. Flask run 만으로도 내부적으로 간단한 WSGI 서버를 실행시킨다.그러나 이것은 운영 환경에서 사용하기엔 부족한 면이 많음 - 성능 이슈 : ..