전체 글 78

개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (11-14장)

C 11. CPU 스케줄링 cpu스케줄링은 공정하고 합리적으로 cpu 자원을 배분하는 방법이다. 프로세스는 우선순위를 갖고 있고 이는 PCB 에 명시된다. 우선순위가 높은 프로세스는 대표적으로 입출력 작업이 많은 프로세스이다. 그런데 프로세스 종류마다 입출력 장치를 이용하는 시간과 양에는 차이가 있다. 입출력 집중 프로세스 :비디오 재생이나 디스크 백업 작업을 담당하는 입출력 작업이 많음 CPU 집중 프로세스 : 복잡한 연산, 그래픽 처리작업을 담당하는 cpu 작업이 많은 프로세스 운영체제는 효율적인 스케줄링을 위해 스케줄링 큐를 사용한다. 대표적인 큐로 준비큐와 대기큐가 있다. 준비큐: cpu할당을 기다리는 프로세스를 위한 큐 대기큐: 입출력장치를 기다리는 프로세스들을 위한 큐 선점형 스케줄링: 프로세..

개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (9-10장)

C 9. 운영체제란 운영체제는 실행할프로그램에 필요한 자원을 할당하고 프로그램이 잘 싱행되도록 돕는 특별한 프로그램이다. 컴퓨터가 부팅될때 메모리내 커널영역이라는 공간에 따로 존재하면서 실행된다. 커널: 운영체제의 핵심 기능을 담당커널영역을 제외한 나머지 영역, 사용자가 이용하는 응용프로그램이 있는 영역을 사용자 영역, 사용자 인터페이스라고 한다. 사용자 인터페이스 1) 그래픽 유저 인터페이스 2) 커멘드 라인 인터페이스 개발자는 운영체제와의 대화를 통해 하드웨어와 프로그램을 더 깊이 이해하고 문제해결의 실마리를 찾을수 있다. 대표적인 운영체제 서비스로 프로세스 관리, 자원 접근및 할당, 파일 시스템관리가 있다. 운영체제는 사용자가 직접 접근하는 것을 방지하여 자원을 보호 한다. 접근 하는 방법은 이중모..

개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (4-8장)

첫번째 글에 이어서 계속 작성해보겠다. 1-3장 내용이 궁금하다면 하단으로 고고 https://haneui.tistory.com/36 개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (1-3장) 운영체제 공부 때문에 강의랑 책을 구매해서 듣게되었다. 주말에 틈내서 읽게되었는데 좀더 기억에 남기기 위해서 한번 내가 읽은 내용을 정리해보았다. (독후감 겸 내 생각도 들어가져 있음 ㅎ haneui.tistory.com C 4. CPU의 작동원리 cpu는 메모리에 저장된 명령어를 읽고 해석하고 실행하는 장치이다. 내부에는 계산을 담당하는 ALU, 해석하는 제어장치, 임시 저장장치인 레지스터가 구성되어져 있다. 또한 명령어를 처리하는 과정에는 어떤 흐름이 있고 이런 흐름을 명령어 사이클이라고 한다. 간혹 처리중 흐름..

개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (1-3장)

최근에 운영체제 공부 때문에 강의랑 책을 구매해서 듣게 되었다. 주말에 틈내서 읽게 되었는데 좀더 기억에 남기기 위해서 한번 내가 읽은 내용을 정리해 보았다. (독후감 겸 내 생각도 들어가져 있음 ㅎㅎ) 비전공자라 운영체제와 컴퓨터 구조가 너무 막연하고 어렵게 느껴졌었는데 비유와 대체로운 그림이 조금 더 쉽게 느껴지는 책이었다. 전체적으로 목차를 보면 아래와 같다. C 1. 컴퓨터 구조를 알아야하는 이유 컴퓨터 구조는 실력있는 개발자가 되려면 반듯이 알아야하는 기본 지식! 컴퓨터 구조를 이해하고 있다면 문제 상황을 좀더 빠르게 해결 가능하다. 오류가 생겻을떄 단순히 디버깅만 해서 끝내는 하수가 아니라 근본적인 원인 해결을 위해서 다가가는 고수의 발판이 아닐까? 단순히 코드만 짜는 개발자가 아니라 다양한 ..

운영체제 - 종류 (Windows,OS,Linux)

위에 처럼 다양한 종류들이 있지만 대표적인 것들만 다뤄보겠다. 1. Windows 장점) 사용자 친화적인 인터페이스: 많은 사용자들이 Windows를 통한 컴퓨터 사용에 익숙. 다양한 소프트웨어 지원: 많은 응용 프로그램 및 게임이 Windows에 최적화. 광범위한 하드웨어 호환성: 다양한 브랜드와 모델의 컴퓨터와 장치들과 호환이 잘됌. 용도) 일반적인 데스크톱 및 랩톱 컴퓨터용으로 널리 사용. 비즈니스 환경에서도 많이 사용되며, 기업용 응용 프로그램과의 호환성이 뛰어남. 2. macOS 장점) 우아하고 진보된 디자인: macOS는 사용자에게 세련된 디자인과 직관적인 인터페이스를 제공. 안정성과 성능: Apple이 하드웨어와 소프트웨어를 동시에 제어하므로 안정성과 성능이 뛰어남. 개발자 및 디자이너를 위..

운영체제 - 기본

1. 운영체제란? 운영체제는 컴퓨터 시스템을 관리하고 제어하는 소프트웨어. 컴퓨터 하드웨어와 응용 프로그램 사이에서 중재자 역할을 하며, 사용자와 하드웨어 간의 효율적인 소통을 도와준다. 2. 주요 기능 가. 자원 관리 운영체제는 컴퓨터의 자원을 효율적으로 관리한다. 이는 CPU, 메모리, 저장장치, 입출력 장치 등을 포함. 프로그램이 자원을 요청할 때 운영체제는 이를 조절하여 각 프로그램이 원활하게 동작할 수 있도록 지원한다. 나. 프로세스 관리 프로세스는 실행 중인 프로그램을 의미하며, 운영체제는 이러한 프로세스를 생성하고 관리한다. CPU의 할당, 우선순위 결정, 프로세스 간 통신 등을 조절하여 효율적인 작업을 수행한다. 다. 파일 시스템 관리 데이터를 저장하고 검색하기 위한 파일 시스템도 운영체제..

SEO - meta tag (og:description, description 차이점)

메타 태그에서 og:description과 description은 각각 Open Graph 프로토콜과 일반적인 웹 페이지 메타 데이터에 사용되는 태그들이다. 예시를 통해서 한번 알아보자 이거 제대로 작성안해서 네이버 검색엔진에서 빠꾸당한 기억이... og:description 만 적고 아 설명 적었지 하면서 name: description은 안적은 것이다. 그래도 바로 체크해서 반영했다. (바보같았던 그날...) 1) og:description (Open Graph Protocol) 목적: 주로 소셜 미디어 플랫폼에서 공유될 때 사용되는 메타 데이터를 정의한다. 활용: 페이스북, 트위터 등 소셜 미디어에서 링크를 공유할 때 미리보기에 표시되는 설명을 제공. 예시 2) description (일반적인 메타..

JavaScript 2024.01.05

프론트 개발자의 한계

프론트엔드는 사용자와 직접 소통하는 특별한 영역이지만 기술적인 문제들을 부딪힐때마다 한계가 느껴진다 그럴때 마다 이래서 다들 풀스택을 하는건가 싶다. 버그나 다양한 문제를 마주칠때 백엔드, 서버의 이해없이는 풀기 힘든 문제들이 많다고 느껴지기 때문이다. 서버사이드 로직 이라든지 보안이라든지 그런 부분에 이해가 얕은편이고 전체적인 아키텍처를 잘 이해하지못하고 있는거 같다. 시스템 전체를 이해하면서 개발을 해나가면 더욱 좋은 (몸값 높은?) 개발자가 될수 있지않을까 싶다. 나 자신의 성장과 기술의 발전을 쫒아가면서 공부해 나가야겠다… 끄적 끄적 앞으로 소프트웨어 개발 카테고리에 더 많은 글을 작성 할 수 있기를.. 화이팅 해보자!

잡담 2024.01.03

CI/CD Flow - 자동화 배포

1. CI/CD란? CI/CD는 소프트웨어 개발에서의 품질 향상과 속도 향상을 위한 개발 방법론. * Continuous Integration (CI) 개발자들이 작성한 코드를 자동으로 통합하고, 빌드 및 테스트를 수행, 주기적인 빌드와 테스트를 통해 통합 오류를 미리 감지 * Continuous Deployment (CD) 빌드 및 테스트를 통과한 코드를 자동으로 프로덕션 환경에 배포, 지속적으로 안정적인 배포를 실현하며 개발 주기를 단축 2. CI/CD의 이점 1) 가속된 개발 주기 CI/CD를 도입하면 코드 변경이 자주 이루어질수록 더 빠르게 빌드, 테스트, 배포되어 새로운 기능이나 버그 수정이 빠르게 사용자에게 제공. 2)자동화된 품질 보증 자동화된 빌드와 테스트는 품질을 보장하며, 통합 오류를 ..

개발 방법론 - DevOps vs 애자일 vs 워터폴: 비교와 장단점

방법론 비교와 장단점 1. DevOps (Development + Operations) DevOps는 소프트웨어 개발과 IT 운영 간의 협력과 자동화를 강조하는 문화, 철학, 방법론입니다. 개발과 운영 간의 경계를 허물고 지속적인 통합, 배포, 자동화 등을 통해 소프트웨어 제공 과정을 최적화하는 것이 목표. 장점) 빠른 제공: 지속적인 통합과 배포를 통해 빠른 제품 출시 가능. 안정성 향상: 자동화된 테스트와 배포로 안정성을 유지. 단점) 문화 변화 필요: 조직 내에서 협력과 자동화에 대한 새로운 문화를 수용해야 함. 기술적 도전: 기존 시스템과의 통합이나 기술적인 도전에 대한 대응이 필요. 예시) Jenkins, GitLab CI/CD 등의 도구를 활용하여 지속적 통합 및 배포 파이프라인을 구성. In..

반응형