반응형

공부 624

운영 체제(OS)란?

1. 운영 체제란? 운영체제(OS)는 컴퓨터 시스템의 하드웨어와 그 시스템에서 실행되는 소프트웨어 애플리케이션 사이의 중개자 역할을 하는 소프트웨어 구성 요소입니다. 운영 체제는 컴퓨터 시스템의 필수적인 부분이며 프로그램이 실행될 수 있는 환경을 제공하고 시스템의 하드웨어 리소스를 관리합니다. 운영 체제는 애플리케이션 실행을 위한 중요한 기반 역할을 하며 사용자와 기본 컴퓨터 하드웨어 간의 상호 작용을 용이하게 합니다. 2. 운영 체제의 주요 개념 프로세스 및 스레드 관리: 운영 체제는 프로세스를 생성, 예약 및 종료하여 프로그램 실행을 관리합니다. 프로세스는 실행 중인 프로그램의 인스턴스이며, 운영 체제는 리소스 할당, 메모리 관리, 여러 프로세스의 실행 조정과 같은 작업을 처리합니다. 프로세스 내에서..

공부/OS 2023.06.03

신입, 경력직 회사 생활과 자기 계발에 필요한 것 2탄

생각보다 간단하고 회사 생활에 도움 되었던 점 "여러 공식 채널에 올라오는 메시지나 이메일 확인하기“ 1️⃣ 여러 공식 그룹 메시지 채널에는 내가 몰랐던 여러 가지 팀과 회사 상황에 관한 글이 올라온다. 자율성이 크게 주어진 기업 문화라면 서로 간 (프로젝트 간) 대화의 창이 없는 경우가 태반이다. 아는 사람에게만 정보 전달하고, 다른 이해 관계자에게 미처 말해주지 못할 때가 많다. 나에게 관련 없어 보여도 알고 보니 공식 채널에 올라오는 메시지가 내 일과 관련된 때가 생각보다 많다. 이 습관을 갖고 다음과 같은 긍적적인 변화를 겪었다. 1. 다른 팀의 설계 변경 사항에서 그들이 놓쳤던 외부 팀 또는 조직과 관련된 리스크를 알려줄 수 있었다. 2. 다른 엔지니어가 몰랐던 개념에 대해 알려주었고, 다른 팀..

공부/자기계발 2023.06.03

해시 테이블(Hash-Table)이란?

1. 해시 테이블이란? 해시 맵이라고도 하는 해시 테이블은 키-값 쌍을 효율적으로 저장하고 검색할 수 있는 데이터 구조입니다. 즉, 각 데이터는 고유 키를 기반으로 테이블에 저장됩니다. 또한 해싱이라는 기술을 사용하여 키를 기본 배열의 특정 위치에 매핑하여 관련 값에 빠르게 액세스할 수 있도록 합니다. 해시 테이블은 버킷 배열로 구성되며, 각 버킷은 앞에서 설명한 것과 같이 하나 이상의 키-값 쌍을 저장할 수 있습니다. 해시 테이블은 해시 함수를 사용하여 키를 가져와서 해시 함수를 적용하는 방식으로 작동합니다. 해시 함수는 키-값 쌍이 저장되어야 하는 배열의 인덱스를 반환합니다. 그 다음 해시 값을 사용하여 테이블에서 데이터 위치를 결정합니다. 해시 함수는 두 개의 키가 동일한 인덱스에 해시할 때 발생하..

공부/자료구조 2023.06.03

당신이 성장하지 못하는 이유

개발자로 살아가다 보면 불안을 느낄 때가 참 많이 오는 것 같습니다. 새로운 기술을 만나서 잘 몰라 허덕일 때나, 본인이 모르는 게 무엇인지 파악조차 안되거나, 취업이 잘 안되는데 원인을 모른다거나 연차는 점점 늘어만 가는데 실력은 그대로인 것 같은 느낌을 받을 때면 불안에 휩싸여 우울해지기까지 했던 것 같습니다. 그런 감정들을 벗어나기 위해 다양한 시도를 하다 보면 이상하게도 예상하지 못한 포인트에서 해결점을 찾게 되는 경우가 있었는데요. 여기서의 핵심은 "시도를 한다."라고 생각이 들어 불안감을 느낄 때면 뭐라도 해보자는 생각부터 하게 되었던 것 같습니다. 상황을 분석하고 해결하는 과정이 비단 기술적인 문제를 만날 때나 어려운 요구사항을 구현할 때뿐만은 아닌 것 같습니다. 본인 스스로에게도 적용될 수..

공부/자기계발 2023.06.02

딕셔너리(Dictionary)란?

1. 딕셔너리란? 딕셔너리(맵, 연관 배열, 심볼 테이블이)란 키-값 쌍의 데이터를 저장하는 추상 데이터 유형입니다. 연결된 키를 기반으로 값을 효율적으로 삽입, 삭제 및 검색할 수 있습니다. 각 키는 고유하며 각 값은 모든 유형의 데이터가 될 수 있습니다. 딕셔너리에서 키를 조회하면 딕셔너리는 연관된 값을 반환합니다. 2. 딕셔너리의 주요 개념 키-값 쌍: 딕셔너리는 요소를 키-값 쌍으로 저장하며, 각 키는 컬렉션 내에서 고유하고 각 키는 해당 값과 연관됩니다. 키는 연결된 값에 액세스하기 위한 식별자 또는 색인 역할을 합니다. 값은 정수, 문자열, 객체 또는 기타 데이터 구조와 같은 모든 데이터 유형이 될 수 있습니다. 효율적인 조회: 딕셔너리가 제공하는 기본 작업은 특정 키와 연관된 값을 검색하는 ..

공부/자료구조 2023.06.02

개발자를 준비하는 이들에게 10가지 격려의 메세지

- 개발자가 되고 싶다면 포기하지 마세요. 당신은 할 수 있습니다! 💪 - 개발자는 항상 새로운 것을 배우고 도전하는 사람들입니다. 배움의 즐거움을 잊지 마세요. 😊 - 개발자는 혼자가 아닙니다. 다른 개발자들과 소통하고 협력하면서 성장하세요. 🙌 - 개발자는 창의적이고 표현력이 뛰어난 사람들입니다. 당신만의 아이디어와 스타일을 자신있게 보여주세요. 🎨 - 개발자는 문제를 해결하는 전문가입니다. 어려운 문제에 부딪힐 때마다 그것이 당신의 실력을 키워주는 기회라고 생각하세요. 🧠 - 개발자는 자신의 코드에 자부심을 가지는 사람들입니다. 코드를 깔끔하고 가독성 있게 작성하면서 품질을 높이세요. 👍 - 개발자는 사용자를 위해 서비스를 만드는 사람들입니다. 사용자의 입장에서 생각하고 피드백을 수용하면서 사용자 ..

공부/자기계발 2023.06.02

레드 블랙 트리(red-black tree)란?

1. 레드 블랙 트리란? 레드-블랙 트리는 삽입과 삭제 중에 균형을 유지하는 자체 균형 바이너리 검색 트리입니다. 빨간색 또는 검은색인 노드 색상의 이름을 따서 명명되었습니다. 레드-블랙 트리는 균형 잡힌 구조를 보장하여 최악의 경우 시간 복잡도가 O(log n)인 효율적인 검색, 삽입, 삭제 작업을 보장합니다. 2. 레드 블랙 트리의 속성 및 개념 이진 검색 트리(BST) 속성: 레드-블랙 트리는 이진 검색 트리로, 각 노드에 키 값이 있으며, 어떤 노드의 왼쪽 하위 트리에 있는 키는 해당 노드의 키보다 작고 오른쪽 하위 트리에 있는 키는 더 큽니다. 노드 색상: 빨간색-검정색 트리의 각 노드는 빨간색 또는 검정색으로 표시됩니다. 이 색상은 트리의 속성을 유지하기 위한 균형 메커니즘을 제공합니다. 빨간..

공부/자료구조 2023.06.02

🕊️ 개발자의 나쁜 습관 7가지

1️⃣ 중복된 코드 사용하기 코드의 중복이 적을수록 코드 품질이 좋아집니다. 2️⃣ 나만의 방식대로 일 하기 다른 사람들이 적응하지 못하는 나만의 일 처리 방식은 금물. 3️⃣ 코딩 스타일 이슈는 미루기 4️⃣ 코드 최적화 하지 않기 5️⃣ 도움을 요청하지 않기 동료에게 도움을 요청하는 걸 부끄러워 할 필요가 없습니다. 그러기에 '팀'입니다. 6️⃣ 건강에 신경 쓰지 않기 규칙적인 수면을 취하여 좋은 컨디션을 유지하세요. 7️⃣ 쉽게 포기하기 어떤 문제에서 막혔다는 것이 무능하다는 뜻은 아닙니다. 출처 : 커리어리 '조서희'님 https://careerly.co.kr/comments/81789?utm_campaign=user-share 조서희 / 개발자의 나쁜 습관 7가지 | 커리어리 1️⃣ 중복된 코드..

공부/자기계발 2023.06.02

2023 정보처리기사 실기 스터디 37일차 4/4

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 5-2 ~ 27 * 파이널 책: 모의고사 24회 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 인터페이스 기능 구현 기술들 (JSON, AJAX, REST, XML) * JSON의 개념 및 장/단점, 자료형 * XML의 개념 및 특징 * AJAX의 개념 주요기술(XMLHttpRequest, DOM 등) * REST의 개념 ​* 시큐어 코딩 가이드 각 대상별 약점과 대응 방안 (입보시 에코캡A) * 데이터베이스 암호화 알고리즘 (대비해 = SEED, RSA, SHA) * 암호화 기법 (애플타하 = 애플리케이션 레벨, DB 서버, DBMS 커널, API + PlugIn) * IPSec, SSL, S-HTTP의 개념 ​ 3. 공부하면서 이해하지 못..

2023 정보처리기사 실기 스터디 36일차 4/3

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 4-2 ~ 19 * 파이널 책 : 모의고사 19회 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 주요 연계 기술 중 직접 연계와 간접 연계에 해당하는 기술들. * API의 개념 * EAI의 개념, 구성요소, 구축 유형 * ESB의 개념 * 웹 서비스 방식의 개념, 관련 용어, 유형(SOAP, WSDL, UDDI), 각 유형의 개념 * IPC 개념 및 기법 3. 공부하면서 이해하지 못한 용어 * 없음 ​ 4. 귀염둥이 조카가 아픈바람에 누나가 아이를 맡겨 하루 종일 돌봐주느라 공부할 시간이 없어서 많이 밀려있습니다. 주말에 시간 내어 열심히 진도 따라가겠습니다 :)

🤙신뢰를 쌓는 커뮤니케이션이란

✔️ 결론: 누구에게나 신뢰 받는 이들의 커뮤니케이션에는 '자신을 지키면서도 타인의 문제를 해결해가는 힘'이 있다. . . 겉보기에 사람은 좋으나 중요한 무언가를 같이 하려고 할 때 '물음표'인 사람들이 있죠. 🤔 협업이든 연애든 결혼이든, 그 사람과의 미래를 떠올리면 계속 의문이 드는 사람들. 상대방에게 확신을 주지 못하는 이들은 여러가지 문제들이 있겠지만 특히 '커뮤니케이션' 역량의 문제를 갖고 있는 경우가 많아요. 그럼 타인에게 확신을 주고 오랜 시간 신뢰를 쌓는 사람들은 어떤 특징을 갖고 있을까요? 그들은 어떤 커뮤니케이션에는 어떤 힘이 있을까요? . . . 1️⃣ 문제가 아닌 해결책을 중심으로 소통한다. 👉 이들은 문제나 불평만 늘어놓지 않고 항상 해결책을 함께 제시합니다. 또한 무조건 안 된다..

공부/자기계발 2023.04.09

프로세스(Process)와 쓰레드(Thread)의 차이점

운영 체제에서는 프로세스와 스레드 모두 코드를 실행하고 작업을 수행하는 데 사용되지만, 몇 가지 점에서 차이가 있습니다. 1. 프로세스(Process)의 개념 프로세스는 컴퓨터에서 실행 중인 프로그램의 인스턴스입니다. 프로세스는 프로그램 코드와 데이터를 포함하는 메모리 공간과 CPU 시간, 파일, 네트워크 연결 및 기타 리소스를 포함한 시스템 리소스 집합으로 구성됩니다. 각 프로세스에는 고유한 메모리 공간이 있으므로 다른 프로세스의 메모리에 직접 액세스할 수 없습니다. 2. 쓰레드(Thread)의 개념 반면 스레드는 프로세스의 하위 집합입니다. 스레드는 프로세스 내에서 독립적인 실행 경로입니다. 프로세스 내에서 여러 스레드가 동시에 실행될 수 있으며 프로세스와 동일한 메모리 공간 및 시스템 리소스를 공유..

공부/OS 2023.04.09

스타트업은 왜 실패하는가?

스타트업은 왜 실패하는가? "스타트업 세계에서는 실패를 마치 당연히 거쳐야하는 명예 훈장이나 통과 의례로 그럴싸하게 포장해서 얘기하는 경향이 있습니다. 어쩌면 이것이 실패에 대처하는 메커니즘일 수도 있겠습니다." "대부분의 스타트업이 성공하지 못합니다. 나는 이 질문의 진상을 밝히기로 했습니다. 나는 사업을 접는 수십 명의 기업가들과 상담을 통해 연구를 진행하면서, 많은 실패에는 반복적인 패턴이 있으며 이를 피할 수 있겠다는 것을 발견했습니다." "이 아티클에서는 6개 실패 패턴 중에서 두 가지에 초점을 두어 설명합니다. 이 두 가지는 실패 사례 중에서 가장 피할 수 있으면서, 규모가 큰 회사의 신규사업에도 적용이 가능하기 때문입니다." - 하버드 비즈니스스쿨, Tom Einsenmann 교수 / Why..

공부/자기계발 2023.04.09

프로세스(Process)란?

1. 프로세스란? 컴퓨터 운영 체제에서 프로세스는 현재 실행 중인 프로그램으로 정의할 수 있습니다. 프로세스는 운영 체제의 기본 개념이며 컴퓨터 시스템의 기본 작업 단위입니다. 컴퓨터에서 실행되는 모든 프로그램은 하나 이상의 프로세스를 생성합니다. 프로세스는 프로그램의 명령어, 데이터, 현재 실행 상태 등 프로그램을 실행하는 데 필요한 모든 정보를 담고 있는 컨테이너입니다. 각 프로세스에는 고유한 주소 공간이 있으므로 다른 프로세스의 메모리에 직접 액세스할 수 없습니다. 2. 프로세스의 구성 요소 프로세스에는 다음과 같은 여러 구성 요소가 있습니다: 프로그램 코드: 프로세스에서 실행되는 코드입니다. 여기에는 프로세스가 작업을 수행하는 데 필요한 지침과 데이터가 포함됩니다. 데이터: 프로세스가 실행하는 동..

공부/OS 2023.04.09

코드 리뷰가 개발 문화에 미치는 영향

요즘 매일 보는 앱 중에 깃허브(github)가 있습니다. 개발에서 손을 뗀 지 벌써 13년이 지났지만, SaaS 기업으로 회사를 키우는 입장에서 코드를 제품(product)을 구성하는 중요한 요소로 보고 있기 때문에 깃허브의 알람을 빠짐 없이 읽습니다. 코드를 중심으로 한 개발자들의 대화를 읽다 보면 코드를 짜지 않더라도 동료들이들이 무슨 생각을 하고, 어떤 논의들이 일의 중심에 놓이는지 큰 노력 없이 알 수 있어 무척 편리합니다. 이 글에서는 조직의 리더 입장에서 바라 본 코드 리뷰에 관한 경험을 토대로, 코드 리뷰가 인간적인 개발 문화를 만드는 데 얼마나 큰 기여를 하는지 말하고자 합니다. 출처 및 더 읽어보기 : 요즘 IT '안영희'님 https://yozm.wishket.com/magazine/..

공부/자기계발 2023.04.07

C#에서 클래스(Class)와 구조체(Struct)의 차이점

C#에서는 클래스(Class)와 구조체(Struct) 모두 사용자 지정 데이터 유형을 정의하는 데 사용됩니다. 그러나 둘 사이에는 몇 가지 주요 차이점이 있습니다: 상속: 클래스(Class)는 다른 클래스로부터 프로퍼티와 메서드를 상속할 수 있는 반면, 구조체(Struct)는 다른 구조체나 클래스로부터 상속할 수 없습니다. 즉, 클래스(Class)는 복잡한 상속 계층 구조와 다형성 동작을 구현하는 데 사용할 수 있는 반면 구조체(Struct)는 일반적으로 더 간단하고 가벼운 데이터 구조에 사용됩니다. 메모리 할당: 클래스(Class)의 인스턴스는 힙에 할당되는 반면 구조체(Struct)의 인스턴스는 스택에 할당됩니다. 즉, 클래스(Class)는 메모리 사용량과 가비지 컬렉션 측면에서 오버헤드가 더 높지만..

공부/C# 2023.04.07

퀵 정렬(Quick sort)이란?

1. 퀵 정렬(Quick sort)이란? 퀵 정렬은 피벗 요소를 기준으로 배열을 두 개의 작은 하위 배열로 나눈 다음 각 하위 배열을 재귀적으로 정렬하는 방식으로 작동하는 널리 사용되는 정렬 알고리즘입니다. 이 알고리즘은 효율성이 뛰어난 것으로 알려져 있으며 대규모 데이터 세트에 자주 사용됩니다. 2. 퀵 정렬(Quick sort)의 작동 방식 퀵 정렬 알고리즘의 작동 방식은 다음과 같습니다: 1. 배열에서 피벗 요소를 선택합니다. 피벗은 모든 요소가 될 수 있지만 배열의 첫 번째 또는 마지막 요소로 선택되는 경우가 많습니다. 2. 피벗보다 작은 요소는 모두 피벗의 왼쪽에, 피벗보다 큰 요소는 모두 피벗의 오른쪽에 위치하도록 피벗을 중심으로 배열을 분할합니다. 3. 전체 배열이 정렬될 때까지 위의 두 단..

공부/알고리즘 2023.04.07

✍️ 정보 전달의 목적 명확히 하기

✍️ 정보 전달의 목적 명확히 하기 두 달쯤 전이었나? 한 스타트업 개발자의 글이 공유되는 걸 목격했다. 글의 제목을 보고 '서버 비용을 절약해나간 기술적인 노하우를 단계적으로 공유하겠구나'라는 기대감으로 읽어내려갔다. 아쉽게도 글을 다 읽은 후, 기대감은 큰 아쉬움으로 변했다. 그 글이 아쉬움으로 남게 된 이유는 크게 2가지였다. 1. 논리가 부족했다. 2. 잘못된 정보를 제공했다. 예를 들면, 해당 글에서는 데이터베이스 서버 운영 불안정성을 해결한 방법 한 가지를 소개했다. 하지만 해당 방법을 적용하게 된 구체적인 문제/배경 및 과정이 생략된 채로 '해당 방법으로 항상 데이터베이스의 서버 운영 불안정성을 해결할 수 있는 것'처럼 일반화했다. 나는 그 해결책을 사용하더라도 데이터베이스 서버에 부하를 줄..

공부/자기계발 2023.04.07

정렬 알고리즘(Sorting algorithm)이란?

1. 정렬이란? 정렬은 데이터 요소 모음을 특정 순서(일반적으로 오름차순 또는 내림차순)로 배열하는 기본적인 알고리즘 문제입니다. 정렬 알고리즘은 검색 및 검색, 데이터 분석, 데이터베이스 관리 등 다양한 애플리케이션에서 사용됩니다. 데이터를 정렬하는 데 사용할 수 있는 알고리즘은 여러 가지가 있으며, 각 알고리즘에는 고유한 장단점이 있습니다. 가장 일반적으로 사용되는 정렬 알고리즘은 다음과 같습니다: 2. 정렬 알고리즘의 종류 버블 정렬(Bubble sort): 목록을 반복적으로 통과하면서 인접한 요소를 비교하고 순서가 잘못된 경우 교체하는 간단한 정렬 알고리즘입니다. 목록이 정렬될 때까지 목록을 통과하는 과정이 반복됩니다. 선택 정렬(Selection sort): 목록의 정렬되지 않은 부분에서 최소 ..

공부/알고리즘 2023.04.07

주니어 개발자를 위한 엄청 쉬운 TCP/IP 4계층 이야기

주니어 개발자를 위한 엄청 쉬운 TCP/IP 4계층 이야기 네트워크가 생겨나게 된 계기는 데이터를 주고받기 위해서입니다. 자신의 컴퓨터에만 존재하던 데이터를 다른 컴퓨터와 교환하기 위해 연결을 하면서 ‘네트워크’가 되고, 네트워크 집합들 간의 연결이 ‘인터넷’이 된 것입니다. 네트워크를 통해 하는 행동은, 내가 원하는 것을 상대방에게 “요청”하여 “응답”을 받는 것입니다. 바로 옆사람과 대화 주고받기, 서울 다른 구 사람과 대화 주고받기, 한국 다른 시의 사람과 대화 주고받기, 다른 나라의 사람과 대화 주고받기 등 과거라면 상상도 못할 먼 거리의 사람과 대화가 가능한 것도 바로 네트워크라는 환경이 존재하기 때문인 것입니다. 이번 글에서는 이전 글 “택배 배송 과정으로 알아보는 엄청 쉬운 컴퓨터 네트워크”..

공부/자기계발 2023.04.06
반응형