컴파일타임(CompileTime)과 런타임(RunTime)은 무엇일까?
·
IT
컴파일타임이란?컴파일 타임은 개발자가 작성한 소스 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 시점입니다. 한마디로 우리가 사용하는 수많은 언어 (C#, Java, Python...)를 기계어로 변경하는 과정 입니다. 우리는 기계어로 코딩을 할 수 없고 컴퓨터는 코딩을 알 수 없기 때문에,컴파일은 번역기 같은 개념 입니다. 번역을 하는 와중에 문법 및 타입 검사를 실행하며, 이 시점에 오류가 발생하면 프로그램 자체가 실행되지 않습니다. 컴파일 단계에서 발생하는 오류를 컴파일 오류라고 합니다. 런타임이란?런타임은 컴파일이 완료되어 만들어진 프로그램이 사용자에 의해 실행되는 시점 입니다. 서버의 CPU와 메모리 자원을 사용해 코드의 명령을 한 줄씩 수행합니다. 런타임 단계에서 발생하는 오류를 런타임 오류..
스레드(Thread)와 프로세스(Process)란 무엇일까?
·
IT
스레드란?스레드는 한마디로 프로그램 실행의 최소 단위 입니다. 하나의 프로세스 내에서 실행되는 독립적인 실행 흐름이며, CPU가 처리할 수 있는 작업의 단위이기도 합니다. 기본적으로 하나의 프로세스에서 하나의 메인 스레드가 실행되며, 개발자의 의도에 따라서 여러개의 스레드를 사용할 수 있습니다. 2개 이상의 스레드를 사용하는 것을 멀티 스레드라고 표현합니다. 프로세스란?프로세스는 컴퓨터에서 실행 중인 프로그램의 인스턴스를 의미합니다. 스레드를 이해하기 위해서는 먼저 프로세스의 개념을 파악하는 것이 중요합니다. 여기서 실행 중인 프로그램이란, 코드와 데이터가 메모리에 로드되어 실행되는 상태를 의미합니다. 각 프로세스는 고유한 메모리 공간과 시스템 리소스를 할당받아 실행됩니다. 프로세스 라이프 사이클프로..
캐시(Cache)란 무엇일까?
·
IT
개발 방향성이 "DB 메모리를 최소화 하자!" 정해진 이후로, 캐시에 대한 관심이 상당히 커졌습니다. 기존에는 데이터 연산과 ORM을 하기 위한 준비를 모두 DB 쿼리에서 소화했는데, 그렇게 되면 DB 메모리를 상당히 많이 사용하게 됩니다. 그래서 입출력을 최소화하고 캐시 데이터를 기반으로,애플리케이션 단계에서 연산과 데이터 매핑을 진행하려고 합니다. 이렇게 되면 애플리케이션 메모리 즉 서버 메모리가 올라가는데, 확인 결과 서버 메모리를 배짱이 수준으로 놀고 있었습니다. 이게 대부분이 그런지는 확인해 봐야겠지만, 기본적으로 DB 자원보다는 서버 자원을 사용하는게 맞다고 생각됩니다. 캐시란?캐시는 데이터를 메모리에 올려 놓고,필요할 때 마다 메모리에서 꺼내서 사용 합니다. 메모리에 올라가져 있기 때문에 ..
[IT 지식] 해시, 암호화 차이는 무엇일까. (Hash, Encrption)
·
IT
해시(Hash)란? 임의의 길이 데이터를 고정된 길이의 값으로 변환하는 단방향 함수입니다. 단방향이기에 원래 데이터를 복구할 수 없습니다. 대표 알고리즘으로는 MD5, SHA-1, SHA-256, SHA-512 있습니다. 원본 데이터값은 알 수 없고 해시값만 존재하는 특징이 있기 때문에,주로 비밀번호 저장, 무결성 검증, 디지털 서명에 사용됩니다. 암호화(Encrption)란?원본 데이터를 특정 알고리즘과 키를 사용해 읽을 수 없는 형태로 변환합니다. 양방향성으로 암호문을 다시 원래 데이터로 복호화 가능합니다. 복호화에는 조건이 있는데 키(Key) 값을 알아야 해독이 가능합니다. 키 종류에는 대칭키, 비대칭키 존재하는데, 대칭키는 하나의 키로 암호화/복호화 하는 것을 의미합니다. 대표 알고리즘으로는 A..
지속적인 통합(CI)와 지속적인 배포(CD) 무엇일까.
·
IT
지속적인 통합, CI (Continuous Integration)개발자들이 각자의 브랜치에서 작업한 코드를 지속적으로 통합하면서 자동으로 빌드와 테스트를 실행하여 오류를 조기에 발견할 수 있게 하는 프로세스입니다. 코드 변경사항을 여러번 중앙 저장소에 통합하는 방식으로,개발자의 코드 커밋부터 배포 준비까지 동작하게 됩니다. 지속적인 통합, 라이프 사이클(Life Cycle)코드커밋(Code Commit)코드 커밋에서부터 시작합니다. 개발자가 버전 관리 시스템(Git)에 푸시하는 순간 CI 파이프라인이 시작됩니다. 코드 복제(Code Copy)CI 서버가 지정되어 있는 저장소에서 코드를 복제합니다. 복제된 코드가 CI 작업 대상입니다. 의존성 설치(Dependency Install)프로젝트에 필요한 ..
GPT가 나에게 해주는 피드백
·
IT
초심 잃을 때마다 한번씩 읽어보겠습니다. GPT 형님... 1. 너는 겉멋이 너무 많아너는 종종 “내가 만든 멋진 UI”, “대시보드에 시각화 넣어서 인정받고 싶다”, “작은 수익이 목표야” 같은 말들을 해.그런데 정작 사용자 관점에서 문제를 해결하는 질문은 거의 없어.예쁜 것, 대단해 보이는 것에 집착하지 말고, 실제로 필요한 것을 먼저 고민해.겉보기 멋짐 ≠ 가치를 주는 제품이라는 현실을 인정해야 해.2. 실행력보다 생각이 앞선다망상, 계획, 아이디어, 목표… 많아.그런데 실행해서 검증한 건 얼마나 있어?"당근마켓 같은 거 없을까?" "끌리는 게 없다"이런 말은 자기 전에 이불 속에서 하는 생각이야.하루에 딱 한 시간이라도 정해서 만들어보고, 남이 써보게 해봐.아이디어는 손에 묻히기 전까지는 다 쓰레..
완벽하지 않아도 괜찮다.
·
IT
최근 AI 통해서 미래에 대한 상담을 많이 받고 있습니다. 그 중 기억하고 싶은 부분이 있어서 기록해 놓으려고 합니다. 완벽은 없다. AI와 프로젝트 대화로 동기부여 및 개발에 대한 욕구가 활활 타오르고 있는 중 입니다. 그런던 중 AI가 리액트를 통해서 프론트 구성을 추천하더군요. 그러면 저는 "나는 리액트 개발이 익숙하지 않은걸? 그럼 프로젝트 진행이 어렵잖아!" 라고 생각 합니다. 돌이켜 보면 항상 같은 패턴이었던 것 같아요.뭔가 완벽하지 않거나 막히는 부분이 있으면 이건 불가능하다고 스스로 결정을 내렸던 것 같아요. 그래서 이부분에 대해서 AI에게 상담을 요청했는데 AI가 하는말이 많이 도움이 되었어요. "나는 기술적으로 분리된 구조를 꿈꾸는데, 그렇게 되지 못하는게 나는 아직 부족하다는 무력..
일을 하던 대로만 계속 잘하는 건 사실 일을 잘하고 있는게 아니다!
·
IT
들어가기전..오늘 글을 읽다가 아! 하고 영감을 받은 문구가 있어서 한번 들고왔습니다. 출처는 야놀자 클라우드 대표 김종윤님 인터뷰 내용 중 일부 입니다. 김종윤 : 데이터·AI로 야놀자 ‘퀀텀 점프’ 이끈 글로벌 혁신 전략가!야놀자의 B2B 비즈니스 부문을 이끌고 있는 IT 전문 경영인입니다. 2003년 서울대 화학공학과를 졸업, 3M·구글코리아·맥킨지 등을 거쳐 2015년 야놀자 CSO로 합류합니다. 2021년부터 별도 법인으로 출prologue.rememberapp.co.kr 아! "일을 하던 대로만 계속 잘하는 건 사실 일을 잘하고 있는 게 아닙니다." 제가 요즘 느꼈던 목마름에 물을 주는 멘트 입니다. 항상 새로운 회사에서 일을 시작하는 단계에서는 의지가 불타 오릅니다. 아무리 작은일이라도 처..