전체 글 (12) 썸네일형 리스트형 [혼공컴운] Chapter 3. 명령어 소스 코드가 명령어로 어떻게 변할까? 3-1. 소스 코드와 명령어 모든 소스 코드는 컴퓨터가 이해 가능한 명령어로 변환된다. 고급 언어와 저급 언어 고급 언어: 인간이 이해할 수 있음 저급 언어: 컴퓨터가 직접 이해 가능함 기계어: 0과 1로 이루어진 언어 어셈블리어: 기계어를 읽기 편한 형태로 변환한 저급 언어. 한 줄 한 줄이 명령어 단위이다. 로우 레벨 개발자(임베디드 등)의 경우 위 어셈블리어를 직접 작성해야 하는 경우도 있다. 컴파일 언어와 인터프리트 언어 컴파일 언어: 소스 코드가 컴파일이라는 과정을 거쳐 저급 언어로 변환되는 언어 컴파일 결과로 나온 저급 언어는 목적 코드이다. 위 과정은 굉장히 단순화된 과정이며, C의 경우 전처리기를 거치고, 실행 파일이 생성되는 경우 등 컴파일 언어마다 .. [혼공컴+운] Chapter 2. 데이터 Chapter 2. 데이터 2-1. 0과 1로 숫자를 표현하는 방법 컴퓨터는 0과 1만 가지고 어떻게 숫자를 인식하는 것인가? 정보 단위는 어떻게 이루어져있는가? 정보 단위 비트: 0과 1 하나를 나타내는 단위. n비트로 2^n(2의 n승)가지 정보 표현 가능. 다음 단위로 넘어갈때마다 1000배(2의 10승 단위는 버렸음) 워드: CPU가 한번에 처리 가능한 정보의 크기 예) x86 cpu는 워드가 32비트, x64는 워드가 64비트 하프 워드, 풀 워드, 더블 워드 등의 파생이 존재한다. 이진법: 0과 1만으로 숫자를 표현하기. 개념은 교육과정에서 배웠으니 생략… 표기는 (2)를 붙이거나, 0b를 붙이거나 한다. 이진수의 음수 표기: -라는걸 쓸 수 없으므로 별도 표기 방법이 필요하다. 가장 흔히 사.. [혼공컴운] Chapter 1. 컴퓨터 구조 시작하기 개인적으로 정리하는 강의록 목적이다. 1-1. 컴퓨터 구조를 알아야 하는 이유 왜 코드나 짜는 개발자가 굳이 컴퓨터 구조를 알아야 하는가? 문제 해결 똑같은 코드라도 사람마다, 장비마다 패턴이 다른 경우가 있다. 컴퓨터 내부를 들여다볼 수 있어야 한다. 성능, 용량, 비용 고려 웹사이트를 운영하더라도 서버의 사양을 알아야 한다. 서버의 사용량 등을 고려하여 개발자가 스스로 사양을 선택할 수 있어야 한다. 클라우드도 상황은 마찬가지이다. 코어, 메모리 골라야 한다. 1-2. 컴퓨터 구조의 큰 그림 전체적인 그림을 그려서 이해하는 데에 도움을 주자. 컴퓨터가 이해하는 정보 데이터: 숫자, 문자, 이미지, 동영상과 같은 정적인 정보. 내부에 저장된 정보를 통칭하기도 한다. 이진법을 사용하는 컴퓨터가 어떻게 숫.. 비전공 개발자가 추천하는 필수 컴퓨터공학 전공과목 비전공자로 개발을 시작하게 되면서, 여러 가지 문제를 마주하게 되었지만 항상 불안감을 느끼던 부분은, 전공지식의 부재로 인해 나중에 손해를 볼 것 같다는 불안감이었다. 실무를 통해 많은 것을 배울 수 있다 생각했고, 실제로도 코드 짜는 것이라든지 프레임워크라든지 좋은 디자인같은 것은 좋은 동료들을 통해 익혀나갈 수 있었지만, 컴퓨터공학의 기본적인 전공지식들(하다 못해 용어들)은 정말 백지 상태였다. 여러 커뮤니티 등을 통해 당장 들어야 할 전공지식들에 대해 자문을 구해보았을 때, 당연히 모든 걸 공부하라는 이야기가 대다수였지만(전공자 입장에선 당연히 다 필요해보일 것이다) 몇 가지 공통적인 의견은, OS, DB, 네트워크를 필수적으로 보아라 대학교 커리큘럼을 따라가면서 공부해라 였다. 그래서 당장 대학교.. [Django Admin] 3. Form, Generic View html form 도입 {% csrf_token %} {{ question.question_text }} {% if error_message %}{{ error_message }}{% endif %} {% for choice in question.choice_set.all %} {{ choice.choice_text }} {% endfor %} {% csrf_token %} 크로스 오리진 방어 태그. post, put 등의 form이나 서버에 수정을 가할 수 있는 부분을 다른 도메인에서 떼간 다음에 변형해서, 우리 서버에 위조된 신호를 보낼 수 있다. form 태그에 이 토큰을 넣으면 이 부분을 방어해준다. {{ forloop.counter }} 는 몇 번째 루프인지를 알려준다. view를 수정한다. f.. [Django Admin] 2. 모델, 렌더링 Tutorial Chapter 2, 3을 다룬다. 모델 및 어드민 도입 djangotutorial/ manage.py djangotutorial/ __init__.py settings.py urls.py asgi.py wsgi.py settings.py: DB 연결, 디렉토리, 앱, 미들웨어 등 Databases: 엔진과 그에 따른 옵션 설정 가능. 필요한 설정은 엔진마다 다르며, ‘read_default_file’에 cnf 파일 경로를 지정하여 password, user, host 등의 정보 저장 가능. # settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file':.. [Django Admin] 1. 프로젝트 시작 내가 왜 장고를 쓰는가 내가 장고를 쓰게 된 이유는 명확하다. 업무 중에 장고를 쓴다. 그런데 장고 전체 기능을 쓰는 것은 절대 아니고, 장고의 어드민 기능만 사용한다. 이유인 즉, 데이터 자체에 접근하여 수정을 하는 업무가 필요한데, 이 업무를 담당하는 사람이 개발자가 아니다. 그리고 만약 개발자라고 하더라도, 이러한 데이터 수정이 잦아지면 그때마다 쿼리를 친다든지 하는 식은 너무 비효율적일 것이다. 그렇기 때문에 어드민 페이지 기능을 도입하여 데이터에 대한 검색, 요약, 수정 및 제거 등을 해야 하고, 장고가 그런 부분에 있어서 많은 부분을 자동화해준다. Low-Code 플랫폼을 사용할 것을 장고로 수행하고 있다고 보아도 무방하다. 많은 부분에서 Mendix Studio가 생각난다. Low-code .. [Java] Resilience4j 예시 - CircuitBreaker 2023.01.16 - [개발 여행/Java] - [Java] Resilience4j가 뭐지? [Java] Resilience4j가 뭐지? 면접 때 서킷 브레이커, 마이크로서비스 관리를 물어봤던 이유가 있다. 정말 많이 쓰고 있다. 얘가 뭐임? 기본적으로 Fault Tolerance(장애 허용) 시스템이다. 일정 부분에 장애가 발생해도, 다른 부 kordaydream.tistory.com 이전 글에서 Resilience4j 패키지가 어떤 일을 하는지 간단하게 살펴보았다. 한 줄로 요약하자면, "장애 발생 시 장애가 확산되지 않도록 하는, Fault Tolerance"이다. 가장 많이 사용하는 듯 한 CircuitBreaker 모듈을 보고자 한다. 다른 모듈인 Bulkhead, TimeLimiter와 같은.. 이전 1 2 다음