반응형

공부 624

정적 메모리 할당이란?

1. 정적 메모리 할당이란? 정적 메모리 할당은 일반적으로 프로그램 실행이 시작되기 전인 프로그램 컴파일 단계에서 변수 및 데이터 구조에 대한 메모리를 할당하는 것을 말합니다. 정적 메모리 할당에서는 변수에 대한 메모리 크기와 위치가 컴파일 시 결정되며 프로그램 실행 내내 고정된 상태로 유지됩니다. 즉, 컴파일 시 메모리의 크기와 위치를 알 수 있으며 프로그램 실행 중에 메모리를 변경할 수 없습니다. 예를 들어 전역 변수와 정적 변수는 일반적으로 정적 메모리를 사용하여 할당됩니다. 2. 정적 메모리 할당의 특징 컴파일 시 메모리 할당: 정적으로 할당된 프로그램에서 메모리는 컴파일 프로세스 중에 변수 및 데이터 구조를 위해 예약됩니다. 컴파일러는 프로그램에 정의된 변수 유형과 크기에 따라 메모리 요구 사항..

공부/CS 2023.06.10

소프트웨어 엔지니어 성장의 핵심💡

개발자의 성장에 있어서 ‘반복하는’ 것은 굉장히 중요합니다. 현재 서 있는 자리에 오기까지 반복해서 시도한 것들을 앞으로도 계속 반복하면 분명 가치가 있겠지만 다음 단계로 넘어가기는 쉽지 않습니다. 다음 단계로 넘어가려면 새로운 경로, 단계, 올바른 방향으로 움직일 수 있는 힘이 필요합니다. 이러한 열린 마음을 갖는 것은 성장에 큰 도움이 됩니다. 그러나 새로운 경로, 단계, 올바른 방향을 안 것만으로는 충분하지 않습니다. 새로운 것이 일상적인 개발 루틴의 일부가 되도록 ‘연습을 반복’하는 것이 가장 중요합니다. 저는 새로운 것이 나의 일상이 되어 한단계 더 성장한 모습 상상하기를 좋아합니다. 하지만 성장에 그다지 큰 도움이 되는 상상은 아닌 것 같습니다. 개발자로 치열하게 살면 살수록 “천 리 길도 한..

공부/자기계발 2023.06.10

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

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 11-68 ~ 88 ​ 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 패킷 교환 방식 개념 및 종류 (X.25, 프레임 릴레이, ATM) * X.25, 프레임 릴레이, ATM의 특징 및 계층 * 패킷 교환 방식의 종류(데이터 그램, 가상 회선) ​ * 서킷 교환 방식 * 패킷 교환 방식과 서킷 교환 방식의 비교 * 네트워크 설치 구조 [두음 - 버트링성]의 각 개념 ​ 3. 공부하면서 이해하지 못한 용어 * 없음 ​ 4. 실기를 준비하시는 다른 분들도 마지막까지 잘 하고 계시는 지 모르겠네요. 시험이 3일 남았습니다. 3일 동안 막판 스퍼트를 내며 최선을 다해 공부하여 좋은 결과를 꼭 가지고 싶습니다. :)

크리티컬 섹션(Critical Section)이란?

1. 크리티컬 섹션이란? 크리티컬 섹션은 공유 데이터에 액세스하는 코드 섹션입니다. 컴퓨터 프로그래밍에서 크리티컬 섹션은 원자 단위로 실행되어야 하는 코드 섹션 또는 프로그램의 일부를 의미합니다. 또한 두 개 이상의 스레드가 동시에 동일한 공유 데이터에 액세스하려고 하면 경쟁 조건이 발생할 수 있습니다. 그러므로 다른 스레드나 프로세스의 동시 실행으로 인해 중단되지 않아야 합니다. 크리티컬 섹션은 한 번에 하나의 스레드 또는 프로세스만 공유 리소스나 변수에 액세스하고 수정할 수 있도록 하여 경합 상태를 방지하고 데이터 무결성을 유지합니다. 만약 이를 유지하지 않을 경우 오류 및 예기치 않은 동작이 발생할 수 있습니다. 크리티컬 섹션은 한 번에 하나의 스레드만 실행하도록 설계된 코드 섹션입니다. 이렇게 하..

공부/OS 2023.06.10

리더로 성장하고 싶은 개발자를 위한 3가지 기술

앞으로 30년 혹은 그 이상을 개발자로 살고 싶은 분들께 조금이나마 도움이 되었으면 하는 마음으로 제 경험을 3회차의 연재 글로 풀어볼 겁니다. 지난 1편에 이어 두 번째 글입니다. 성장하는 10년 리딩하면서 일하는 10년 ←여기 서포트하는 10년 (경영과 사업의 10년) 매니지먼트는 프로젝트 관리, 팀 관리, 프로세스 관리로 구분할 수 있습니다. 첫 번째 프로젝트 관리는 출시 시기와 중점을 둬야 하는 일을 관리하는 기술입니다. 두 번째는 팀 관리, 즉 사람 관리입니다. 세 번째로 프로세스 관리입니다. 진행하는 과정을 관리하는 기술입니다. 주니어 개발자로 입사하면 처음에는 주어진 일을 하며, 개발 방법과 개발 주기를 배웁니다. 연차가 높아질수록 프로젝트를 관리하는 방법, 직원을 관리하는 방법, 좋은 프로..

공부/자기계발 2023.06.10

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

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 11-41 ~ 68 ​ 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * OSI 7 계층 각 개념, 프로토콜, 전송단위 * 근거리 통신망(LAN), 무선랜 통신망(WLAN), 원거리 통신망(WAN)의 개념 * 무선랜 표준과 그에 따른 설명 * 원거리 통신망 연결 기술 [두음 - 전희패]의 각 개념 * 프로토콜의 개념 및 기본 3요소 * 네트워크 계층 프로토콜 (IP, ARP, RARP, ICMP, IGMP, 라우팅 프로토콜) * IPv4, IPv6의 개념 및 차이점 * 서브네팅 개념 및 종류, 계산 * 라우팅 프로토콜의 개념 및 종류 (RIP, OSPF, BGP의 각 개념 및 특징) * TCP/UDP의 개념 및 특징 그리고 차이점 * 응용 계층의..

Boost 라이브러리란?

1. Boost 라이브러리란? Boost 라이브러리는 C++ 프로그래밍 언어의 기능을 확장하고 보강하는 고품질의 동료 검토를 거친 오픈 소스 C++ 라이브러리 모음입니다. 개발자가 보다 효율적이고 안정적이며 이식 가능한 C++ 코드를 작성하는 데 도움이 되는 다양한 구성 요소와 도구를 제공합니다. 2. Boost 라이브러리의 특징 광범위한 기능: Boost는 다음을 포함하되 이에 국한되지 않는 광범위한 기능을 다룹니다: 컨테이너: Boost는 표준 C++ 컨테이너의 기능을 확장하는 다중 인덱스 컨테이너 및 순환 버퍼와 같은 추가 컨테이너 유형을 제공합니다. 알고리즘: Boost는 정렬, 검색, 숫자 계산과 같은 작업을 위한 알고리즘을 제공하여 효율적이고 최적화된 구현을 제공합니다. 스마트 포인터: Boo..

공부/C++ 2023.06.10

✍🏻 개발자의 역량

일 잘하는 개발자는 어떤 역량을 갖추고 있을까요? 오늘은 제가 생각하는 개발자의 역량이란 무엇인지 정리했습니다. 개발자에게 있어 역량이란 '요구 사항을 안정성과 확장성의 균형을 맞춰 제시간에 개발하는 능력'이다. 요구 사항을 받아 든 순간부터 역량이 드러난다. 기획자, 디자이너와 요구 사항에 대해 함께 논의하고 구체적인 요구 사항을 정리한다. 때론 제시간에 개발하기 위해 요구 사항을 줄이는 제안을 하기도 한다. 코드를 작성하는 순간에는 안정성과 확장성 사이에서 균형을 맞춘다. 상상하고 싶지 않은 에러 상황들을 하나씩 상상해 가며 세심하게 코드를 써 내려간다. 변수명 하나에도 분명한 이름을 붙여 동료와 미래의 내가 이해할 수 있는 환경을 갖추기 위해 노력한다. 약속한 시각을 지켰다면 제품을 내보낸다. 만약..

공부/자기계발 2023.06.10

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

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 11-20 ~ 40 ​ 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 프로세스의 상태 [두음 - 생준 실대완]의 각 개념 * 프로세스 상태 전이 [두음 - 디타블웨]의 각 개념 ​ * 프로세스 스케줄링의 유형 및 각 개념 * 선점형 스케줄링의 종류 [두음 - SMMR]의 각 개념 * 비선점형 스케줄링의 종류 [두음 - 우기HFS]의 각 개념 * 프로세스 스케줄링 알고리즘 계산법 ​ * 교착상태의 개념 및 발생조건 [두음 - 상점비환]의 각 개념, 해결 방법 [두음 - 예회발복] 개념 및 세부기법 > 은행가 알고리즘은 회피 해결 방법이다. * 디스크 스케줄링의 개념 및 종류 * 가상화의 개념 및 가상화 기술요소 * 클라우드 컴퓨팅의 종료 및 분..

동적 라이브러리(Dynamic library)란?

1. 동적 라이브러리란? 공유 라이브러리 또는 동적 링크 라이브러리(DLL)라고도 하는 동적 라이브러리는 소프트웨어 개발에 사용되는 라이브러리 유형입니다. 이는 다른프로그램에서 사용할 수 있는 컴파일된 코드와 데이터가 포함된 파일입니다. 정적 라이브러리와 달리 동적 라이브러리는 컴파일 시점에 애플리케이션에 직접 링크되지 않습니다. 대신 애플리케이션이 실행될 때 런타임에 동적으로 로드되고 링크됩니다. 따라서 실행에 필요한 모든 코드와 데이터를 포함할 필요가 없으므로 프로그램을 더 작고 모듈화할 수 있습니다. 또한 동적 라이브러리는 이를 사용하는 프로그램을 다시 컴파일하지 않고도 업데이트할 수 있습니다. 2. 동적 라이브러리의 특징 컴파일 및 링크: 동적 라이브러리는 애플리케이션 코드와 별도로 컴파일 및 링..

공부/기타 2023.06.10

소프트 스킬이 중요한 이유

엔지니어, 개발자에게 인성과 태도, 소프트 스킬이 중요한 이유는 이렇다. 1. 개발자에게 개발 능력이 최우선이 맞다 2. 개발 능력이 매우 뛰어나면 인성이나 태도가 그리 중요하지 않은 것도 맞다 이걸 다시 말하자면, 1. 10년 이상 개발일을 계속 하려면 개발 능력이 일정 수준 이상 되는 것이 전제 조건이다 2. 태도가 중요하지 않을 정도의 개발 능력을 갖춘 사람은 상위 1% 정도, 즉 100명 중에 한 명이 그정도 수준이 될까 말까다. 네이버 직원수에 비교하면 네이버 전체에 많아야 한 30~40명 정도? 즉, 1. 개발자로 오래 일하려면 일정 수준 이상의 개발 능력은 기본으로 탑재 되어 있어야 하고 2. 대부분은 태도가 중요하지 않을 정도의 능력자가 아니기 때문에 개발일을 직업으로가진 대부분의 사람들에..

공부/자기계발 2023.06.05

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

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 11-2 ~ 19 ​ 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 운영체제의 개념 및 종류 (윈도우, 유닉스, 리눅스, 맥, 안드로이드) * 커널의 개념 및 기능 * 리눅스/유닉스 운영체제의 기본 명령어 * chmod를 이용한 파일 접근 권한 관리 - 명령어, 기호 및 숫자로 접근 권한을 기술하는 방법 * 메모리 관리 기법 [두음 - 반배할교]의 각 개념 * 메모리 배치 기법 [두음 - 초적악]의 각 개념 * 메모리 할당 기법 중 연속/분산 할당 기법 [두음 - 연단다, 분페세]의 각 개념 * 페이징 및 세그멘테이션의 개념 * 교체 기법의 유형 (FIFO, LRU, LFU, OPT, NUR, SCR) * 메모리 단편화 (내/외부) * 페이징..

정적 라이브러리(Static Library)란?

1. 정적 라이브러리란? 정적 라이브러리는 소프트웨어 개발에 사용되는 라이브러리 유형입니다. 이는 함께 컴파일되어 하나의 실행 파일로 링크된 객체 파일 모음입니다. 즉 결과 실행 파일에는 정적 라이브러리의 모든 필요한 코드가 포함되어 있으므로 외부 종속성으로부터 독립적입니다. 2. 정적 라이브러리의 특징 컴파일 및 링크: 정적 라이브러리는 소스 코드 파일을 객체 코드(Windows의 경우 .obj 파일, Unix/Linux의 경우 .o 파일)로 컴파일하여 만듭니다. 그런 다음 아카이빙 도구를 사용하여 오브젝트 코드 파일을 라이브러리 파일(Windows의 경우 .lib, Unix/Linux의 경우 .a)로 함께 번들로 묶습니다. 컴파일 단계에서는 C 또는 C++와 같은 프로그래밍 언어로 작성된 소스 코드 ..

공부/기타 2023.06.05

Git 커밋 메시지를 최대한 활용해보자!

길지 않으니 꼭 들어가서 원문을 읽어보세요! ----요약---- 📍 커밋 메시지를 잘 작성해야 하는 이유는 무엇인가요? 1. 커뮤니케이션의 효율성 증대 2. 문제 해결 속도 향상 3. 문서화의 기능 📍 어떻게 좋은 커밋 메시지를 작성하나요? 1. 앞단에 어떤 내용을 담은 커밋인지 커밋 유형을 지정합니다. 2. 다른 사람을 배려하기 위해서 자세하게 커밋 메시지를 작성합니다. 이때 commit body를 사용하면 세부적인 내용을 적을 수 있습니다. 이는 동료 개발자가 변경 사항을 더 잘 이해하는데 도움됩니다. 3. 커밋 메세지는 명령하거나 요청하는 어조를 사용합니다. 4. 불필요한 구두점 제거합니다. 5. 팀에서 정의한 '커밋 컨벤션'을 따릅니다. 출처 : 커리어리 '이장근'님 https://careerly..

공부/자기계발 2023.06.05

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

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 10-41 ~ 72 ​ ​ 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 통합 테스트의 개념 및 종류 빅뱅, 하향, 상향, 샌드위치 테스트의 개념 * 테스트 자동화 도구 유형 중 테스트 실행 도구의 유형 (데이터, 키워드 주도 접근 방식) * 테스트 하네스의 구성요소 [두음 - 드스슈 케시스목]의 각 개념 * 결함 관련 용어 [직접 만든 두음 - 오결버고]의 각 개념 * 결함 관리의 개념 및 프로세스 [두음 - 계기검수 재추최]의 각 개념 * 결함 생명주기의 각 개념 * 결함 심각도별 분류 [두음 - 치주보경단]의 각 개념 * 애플리케이션 성능 측정 지표 [두음 - 처음경자]의 각 개념 * 배드 코드의 개념 및 사례, 유형 [두음 - 오문이 ..

멀티 프로세스와 멀티 스레드의 차이점

1. 멀티 프로세스와 멀티 스레드의 개념 멀티프로세싱과 멀티스레딩은 모두 여러 작업을 동시에 실행하는 방법입니다. 그러나 이를 달성하는 방법에는 차이가 있습니다. 멀티스레딩은 단일 프로세스 내에 여러 개의 스레드를 생성합니다. 스레드는 동일한 메모리 공간을 공유하지만 각 스레드에는 고유한 실행 스레드가 있습니다. 즉, 스레드는 동시에 실행될 수 있지만 동시에 다른 리소스에 액세스할 수는 없습니다. 멀티스레드 멀티스레드 시스템은 단일 프로세스 내에서 여러 스레드를 실행하여 동일한 메모리 공간을 공유합니다. 스레드는 프로세스보다 가볍기 때문에 더 효율적으로 생성하고 관리할 수 있습니다. 프로세스 내의 스레드는 메모리, 파일 설명자, 개방형 I/O 스트림과 같은 리소스를 공유하므로 데이터를 더 쉽게 통신하고 ..

공부/OS 2023.06.05

Software Craftsmanship 실천 가이드 / 류석문

애자일의 정의와 한계를 극복하기 위해 소프트웨어 장인 정신 이야기를 다룬 발표 자료가 있어 공유드립니다. 합의의 영역이 불분명하거나 프로세스가 모호하면 오히려 좋지 않은 방향으로 흘러간다는 점과, 개발도 결국 사람이 하는 것이기에 서로를 이해하고 맞춰가는 과정이 꼭 필요하다는 점이 특히 인상적이더라고요. 취업, 이직, 개발, 배포 등등 정신없는 일상 속에서 이런 내용의 글들을 읽으면서 잠시 스스로를 돌아보는 것도 좋지 않나 생각해 봅니다. 출처 : 커리어리 '권태관'님 https://careerly.co.kr/comments/83742?utm_campaign=user-share 권태관 / Software Craftsmanship 실천 가이드 ... | 커리어리 애자일의 정의와 한계를 극복하기 위해 소프트..

공부/자기계발 2023.06.05

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

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 10-12 ~ 40 ​ 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 테스트 커버리지의 개념 및 유형 [두음 - 기라코]의 각 개념 * 테스트 오라클의 개념 및 유형 [두음 - 참샘휴일]의 각 개념 * 테스트 레벨의 종류 [두음 - 단통시인(알베)]의 각 개념 ​ 3. 공부하면서 이해하지 못한 용어 * 없음 ​ 4. 공부 인증 모습을 가급적이면 해당 당일에 맞춰 공부 후 바로 올려야하는데, 진도가 밀려있다는 핑계로 게시물을 한번에 올리게 되어 조금은 죄송스럽습니다.

싱글 스레드와 멀티 스레드의 차이점

1. 싱글 스레드와 멀티 스레드의 차이점 싱글 스레드 프로그램은 실행 스레드가 하나만 있는 프로그램입니다. 즉, 프로그램은 한 번에 한 가지 작업만 수행할 수 있습니다. 반면에 멀티 스레드 프로그램은 실행 스레드가 여러 개 있습니다. 즉, 프로그램이 동시에 여러 가지 작업을 수행할 수 있습니다. 단일 스레드 단일 스레드 프로그램에는 실행 경로 또는 스레드가 하나만 있습니다. 프로그램의 명령은 선형적인 방식으로 순차적으로 하나씩 실행됩니다. 단일 스레드 프로그램은 여러 작업을 동시에 수행할 수 없습니다. 사용자 입력을 기다리거나 느린 I/O 장치에 액세스하는 등 차단 작업이 발생하면 작업이 완료될 때까지 전체 프로그램이 일시 중지됩니다. 단일 스레드 프로그램은 일반적으로 공유 데이터를 처리하기 위해 명시적..

공부/OS 2023.06.05

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

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 10-2 ~ 11 ​ 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * SW 테스트 원리 [두음 - 결완초집 살정오]의 각 개념 * SW 테스트 산출물 테스트 계획서, 베이시스, 케이스, 슈트, 시나리오, 스크립트, 결과서의 개념 * 화이트박스 테스트 유형 [두음 - 구결조 조변다 기제데루]의 각 개념 * 블랙박스 테스트 유형 [두음 - 동경결상 유분페원비오 - 탐]의 각 개념 * 테스트 시각에 따른 분류 > 검증 및 확인의 개념 * 테스트 목적에 따른 분류 [두음 - 회안성 구회병]의 각 개념 * 이 중 성능테스트의 세부 유형 [두음 - 부강스내]의 각 개념 ​ 3. 공부하면서 이해하지 못한 용어 * 없음 ​ 4. 성능 테스트의 세부 유형을 두..

반응형