반응형

공부 542

개발자를 위한 Best Github Repos

개발자를 위한 Best Github Repos Github은 좋은 리소스 풀인 동시에, 너무도 많은 저장소가 있어서 때로는 유용하고 신뢰할 수 있는 것을 찾기 힘들때도 있습니다. 아래 리스트는 개발자를 위한 상위 10개의 Github 리포지토리이니 참고해보세요. 각 github 링크는 아래 글에서 찾아보실수 있습니다 :) 🎁 개발자를 위한 상위 10개의 Github Repos 1. Public APIs - 비즈니스, 애니메이션, 뉴스, 금융, 게임 등 방대한 주제를 포함하는 Github 공용 API 도구 컬렉션 2. FreeCodeCamp - 개발자가 무료로 코딩을 학습할 수 있도록 설계된 Github 대규모 리포지토리 모음 3. Free Ebook Foundation - 사용자에게 개발, 테스트, 코드..

공부/자기계발 2023.03.02

멀티 쓰레드(multi-threading)란 무엇인가?

1. 멀티 쓰레드(multi-threading)란 무엇인가? 멀티 스레딩은 단일 프로세스 내에서 서로 다른 실행 스레드를 동시에 실행할 수 있는 프로그래밍 기법입니다. 스레드는 운영 체제에서 독립적으로 스케줄링할 수 있는 프로그램 내의 가벼운 실행 단위입니다. 여러 스레드를 사용하면 프로그램이 여러 작업을 동시에 수행하고 CPU 시간 및 메모리와 같은 사용 가능한 리소스를 더 잘 활용할 수 있습니다. 2. 멀티 쓰레드 동작 방식 멀티 스레드는 하나의 프로세스 내에서 여러 개의 스레드를 동시에 실행합니다. 또한 프로그램에서 각 스레드는 자체 프로그램 카운터, 스택 및 레지스터를 갖지만, 동일한 프로세스의 다른 스레드와 동일한 메모리 공간을 공유합니다. 따라서, 각 스레드는 다른 스레드에 의해 영향을 받을 ..

공부/OS 2023.03.01

2023 정보처리기사 실기 스터디 2일차 2/28

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 6-18 ~ 47 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 연산자, 반복문, 배열, 문자열 ​ 3. 공부하면서 이해하지 못한 용어 * 없음 :) ​ 4. 공부하면서 혼자 제작하여 푼 문제 [단답형] 문제 1. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오. #include void main() { int x = 4, y = 4; printf("%d", --x); printf("%d", y++); ++y; x--; printf("\n%d", x); printf("%d", y); } [단답형] 문제 2. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오. #include void main() { int x = 6, y = 7, z = 0..

소프트웨어 엔지니어가 20년 경력동안 배운 20가지

소프트웨어 엔지니어가 20년 경력동안 배운 20가지 머리말에 이런 경고가 있습니다. "대부분의 조언들은 컨텍스트와 함께 전달되지 않는다. 컨텍스트가 포함되지 않은 조언들은 무의미하거나 해롭기까지 하다. 나는 경력 초반부를 중소, 스타트업에서 보냈고 그 다음 대규모 컨설팅 회사에 가서 일했다. 그런 다음 2명으로 구성된 팀을 꾸려 25명까지 키워본 경력이 있다. 나는 항상 린(Lean)한 팀에서 일했으며, 특정 도구보다 작동하는 소프트웨어를 중요하게 여긴다." 위 컨텍스트를 참고한 후 아래 20가지 조언을 읽어보시면 좋을 것 같습니다. 1. 나는 여전히 모르는게 많다. 2. 소프트웨어는 올바르게 구축하는 것이 가장 어렵다. 3. 최고의 엔지니어는 디자이너처럼 생각한다. 4. 최고의 코드는 코드가 아니거나,..

공부/자기계발 2023.03.01

2023 정보처리기사 실기 스터디 1일차 2/27

1. 오늘 공부한거 인증용 간단한 사진 * 실기 책: 6-2 ~ 18 2. 공부하면서 개인적으로 중요하다고 생각하는 용어 * 식별자 표기법 (카파스헝) ​ 3. 공부하면서 이해하지 못한 용어 * 없음! ​ 4. 공부하면서 혼자 제작하여 푼 문제 ​ 문제 1. 10진수 27을 2진수로 변환할 시 값은? ​ 문제 2. 10진수 227을 16진수로 변환할 시 값은? ​ 문제 3. 2진수 11011001을 10진수로 변환할 시 값은? ​ 문제 4. 16진수 F7을 10진수로 변환할 시 값은? ​ 문제 5. interger 형 변수 inputvalue를 카멜, 파스칼, 스네이크, 헝가리안 표기법으로 표기하시오. ​ 문제 6. 진수에 맞는 포맷 스트링을 작성하시오. #include void main() { int ..

2023 정보처리기사 필기

예전에 2020년 정보처리기사 필기를 따놓았다. 따고 난 이후 게임 회사를 취직을 위해 경일게암아카데미 학원을 다니고, 학원을 모두 수료하다보니 회사에 취업하게 되었다. 회사를 다니다보니 회사에 적응하기 위해 실기를 딸 시간도 없고, 너무 바쁘다보니 사실상 실기 시험을 봐야지라는 생각도 못하고 살았다. 그러다 이번에 회사 이직을 위해 잠시 시간이 붕 뜨게 되서 실기를 따려고 했지만 필기 합격 기한이 만료가 되어 버렸다. 🤔.. ​ 결국 2023년 수제비 정처기 필기 책을 다시 구입해서 공부했다. 2020년 당시에는 정처기 시험 자체가 개정이 되고 얼마 지나지 않아, 개정 이전 기출 문제에 대해서만 보았지만 많은 도움이 되지는 않았다. 무엇보다 개정 이후 시험이라 시험이 어떻게 나올지 자료가 많이 없었다...

멀티 프로세스(multi-process)란?

1. 멀티 프로세스(multi-process)란? 컴퓨팅에서 멀티 프로세스 시스템은 컴퓨터 시스템에서 여러 프로세스 또는 작업을 동시에 실행할 수 있는 시스템입니다. 이는 여러 개의 프로세서를 사용하거나, 단일 프로세서에서 여러 개의 프로세스를 번갈아가며 실행하여 구현됩니다. 각 프로세스는 자체 주소 공간을 가지므로 다른 프로세스의 실행을 방해하지 않고 독립적으로 실행할 수 있습니다. 멀티 프로세스 시스템에서는 운영 체제가 프로세스의 스케줄링을 관리하고 필요에 따라 메모리 및 CPU 시간과 같은 시스템 리소스를 각 프로세스에 할당합니다. 이를 통해 시스템 리소스를 효율적으로 활용할 수 있으며 전반적인 시스템 성능을 향상시킬 수 있습니다. 또한 멀티 프로세스는 또한 안정성을 향상시킵니다. 하나의 프로세스가..

공부/OS 2023.02.27

모던(Modern) C++ 이란 무엇인가?

1. 모던(Modern) C++ 이란? C++은 1985년 처음 출시된 범용 프로그래밍 언어입니다. 그 이후로 여러 가지 표준이 도입되면서 언어는 크게 발전해왔습니다. Modern C++는 C++11 표준 이후 C++ 프로그래밍 언어에 추가된 기능 및 기능을 나타냅니다. 이러한 새로운 기능에는 언어의 구문 및 기능에 대한 개선 사항과 성능 및 안전성에 대한 개선 사항이 포함됩니다. 가장 최근 버전인 C++20은 2020년에 출시되었습니다. 이 블로그 글에서는 Modern C++이 무엇인지, 그리고 이전 버전과 의 차이점이 무엇인지 알아보겠습니다. 2. 간결성과 가독성 Modern C++의 주요 목표 중 하나는 언어를 더 간단하고 가독성이 높게 만드는 것입니다. 이는 타입 추론(type inference)..

공부/C++ 2023.02.25

메모리 단편화란?

1. 메모리 단편화 메모리 단편화는 컴퓨터 시스템의 메모리가 사용되지 않은 공간의 작은 조각으로 분할될 때 발생합니다. 이는 운영 체제가 메모리를 다양한 응용 프로그램 및 서비스에 동적으로 할당 및 할당 해제하여 시스템 전체에 흩어져 있는 사용되지 않은 메모리의 작은 조각을 생성할 때 발생합니다. 메모리 단편화는 대규모 메모리 할당에 사용할 수 있는 연속 메모리의 양을 줄여 시스템이 할당할 여유 메모리 블록을 검색하는 데 더 많은 시간을 소비하게 하므로 시스템 성능에 상당한 영향을 미칠 수 있습니다. 이로 인해 큰 메모리 블록을 할당해야 하는 응용 프로그램의 대기 시간이 길어지고 메모리 부족으로 인해 시스템 안정성이 저하될 수도 있습니다. 메모리 단편화의 영향을 완화하기 위해 많은 운영 체제는 단편화를 ..

공부/OS 2023.02.11

클린코드란? (가독성의 중요성)

클린코드란? (가독성의 중요성) 좋은 코드는 어떤 코드일까요? 여러 조건들이 있겠지만, 객체지향의 대가 그래디 부치(Object Oriented Analysis 저자)와, 비야네 스트롭스트룹(C++창시자)는 가독성의 중요성을 언급합니다. 코드의 가독성은 왜 중요할까요? 흔히들 협업의 관점에서 생각하실 것 같은데요. 개발을 할 때, 코드를 읽는 시간 대비 짜는 시간의 비율은 약 10 대 1을 훌쩍 넘는다고 합니다. 즉, 내가 작성한 코드라도 기존의 코드를 읽어야 새 코드를 작성할 수 있기 때문에 코드를 읽는 시간은 생각보다도 많이 소요됩니다. 그렇다면 우리는 왜 나쁜 코드를 생산하게 되는 걸까요? 아마도 많은 개발자들이 ‘촉박한 일정’을 예로 들것 같은데요. 관리자는 일정과 요구사항을 강력하게 밀어붙입니다..

공부/자기계발 2023.02.11

메모리 구조의 개념

메모리는 크게 1. 코드 영역, 2. 데이터 영역, 3. 스택 영역, 4. 힙 영역으로 나뉘어져 있다. 1. 코드 영역 코드 영역은 프로그램의 컴파일된(=실행할 프로그램) 기계어 코드를 저장되는 영역이다. 일반적으로 이 영역은 읽기 전용이며, 프로세서가 실행하는 명령들을 포함시킵니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 2. 데이터 영역 데이터 영역은 초기화된 데이터와, 초기화되지 않는 데이터를 포함하여 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역입니다. 아울러 초기화된 데이터는 읽기 전용 섹션에 저장되고, 초기화되지 않은 데이터는 읽기-쓰기 섹션에 저장됩니다. 또한 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다. 3..

공부/CS 2023.02.11

전부 사무실 출근하라는 IT 기업들의 속내?

전부 사무실 출근하라는 IT 기업들의 속내? 작년말 일론머스크의 트위터 인수 이후 첫 메일이 재택근무를 중단하고 사무실 출근을 종용한 것이 큰 이슈가 되었었습니다. 이것이 트리거(?)가 된건지는 모르겠지만, 그동안 속내와 다른 인재유치를 위한 베네핏으로 제시하였던 재택이 이제는 서서히 사무실 근무로 다시 전환이 되는 걸 느낄 수 있습니다. 이와 관련하여 팩폭하는 글이 있어 공유해봅니다. 상세 내용은 링크를 참고해주시구요. 내용이 어렵지 않아 한번에 쑤~욱 그냥 읽힙니다. ^^ ✅ 트위터, 카카오가 다시금 불붙힌 재택근무의 실효성 ✅ 앞서서 트위터의 재택근무 시행 종료 이전부터 몇몇 IT 기업들에선 점차 재택근무들을 종료하는 분위기였는데요. 대표적으로 애플, 구글, MS가 전면 재택근무를 종료하고자 하며 ..

공부/자기계발 2023.02.11

🕊️ 모든 주니어 개발자들에게 전하는 충고 5

🕊️ 모든 주니어 개발자들에게 전하는 충고 5 소프트웨어를 처음 배우는 것은 굉장히 고된 일입니다. 정신적으로든, 육체적으로든. 배워야 할 것은 너무나 많은데, 내가 알고 있는 것은 너무나 적기 때문이죠. 이번에는 그런 주니어 개발자들을 위해 '모든 주니어 개발자들에게 전하는 충고 5'를 가져왔습니다. 1️⃣ FOMO - 고립공포감 *fear of missing out: 다른 사람들이 하는 경험에서 나만 소외되었다는 불안감 처음 개발자로 시작하게 된다면, 여러가지 것들(10가지 다른 언어, 프레임워크 등)을 동시에 배워야 한다는 생각에 사로잡힐 수 있습니다. 소프트웨어 분야는 발전하는 것을 멈추지 않기 때문에 배워야 할 것도 너무 많아보입니다. 그래서 처음엔 어디서부터 시작해야 할지도 모른채 불안감만 늘..

공부/자기계발 2023.02.11

리스트(List)에서 100만번째 데이터를 찾는데 검색 속도를 줄이려면 어떻게 해야할까?

리스트 구조에서 백만 번째 데이터를 찾기 위해 검색 속도를 줄이는 것은 목록 검색의 선형 시간 복잡성으로 인해 어려울 수 있습니다. 그러나 다음 방법들은 검색 속도를 개선하는 데 도움이 되는 몇 가지 전략입니다. 1. 인덱싱 : 한 가지 접근 방식은 데이터를 목록의 해당 위치에 매핑하는 인덱스를 만드는 것입니다. 이렇게 하면 목록에서 올바른 위치로 빠르게 이동하여 원하는 데이터를 찾을 수 있습니다. 2. 정렬(Sorting) : List의 데이터를 정렬하면 이진 검색 알고리즘을 사용하여 로그 시간으로 원하는 데이터를 찾을 수 있습니다. 3. 해시 테이블 : 또 다른 접근 방식은 해시 테이블을 사용하여 목록에 데이터를 저장하고 데이터를 해당 위치에 매핑하는 것입니다. 이를 통해 일정 시간 조회를 사용하여 ..

공부/자료구조 2023.02.11

✍🏻 개발자의 성장을 돕는 문화

✍🏻 개발자의 성장을 돕는 문화 회사에서 '직원 성장의 책임은 개인에게 있는가? 회사에 있는가?'라는 주제로 토론했던 내용 중 기억에 남는 내용을 정리했습니다. - 1️⃣ 회사의 성장과 개인의 성장 회사는 회사의 성장을 위해 개인을 고용한다. 따라서 고용된 개인은 회사의 성장을 우선에 두어야 한다. 회사의 성장 과정에 여러 단계를 겪으며 개인도 함께 성장하는 경우도 있다. 그래서 회사의 성장을 우선에 두는 게 도움이 되기도 한다. 하지만 냉정하게 말해 회사는 개인의 성장을 책임져야 할 의무는 없다. 2️⃣ 개발자가 성장한다는 의미 개발자는 하드 스킬, 소프트 스킬을 갖춰야 한다. 두 가지 스킬이 모두 향상해야 한다. 하드 스킬은 새로운 문제를 해결하는 과정에 습득한다. 그리고 유사한 문제를 반복적으로 해..

공부/자기계발 2023.02.11

💡 2022 회고와 2023년 개발 트렌드 (feat. 미국 대학 석사)

💡 2022 회고와 2023년 개발 트렌드 (feat. 미국 대학 석사) 다사다난 했던 2022년이 저물어가고, 어느덧 2023년이 다가오고 있습니다. 개인적으로 2022년은 정신없이 지나간 한 해였던 것 같은데요. 잠시 숨을 고르며, 이번 글을 통해 지난 한 해 개발 업무를 회고하고 2023년 웹 모바일 분야의 개발 트랜드를 점검해볼까 합니다. 아울러, 개발자로서 2023년에는 어떤 방향으로 성장해 나아갈지에 대해서도 정리해보았습니다. 출처 : 커리어리 'Sohee'님 https://careerly.co.kr/comments/73962?utm_campaign=user-share Sohee / 💡2022 회고와 2023년 개발 트렌드 (feat.... | 커리어리 💡2022 회고와 2023년 개발 트렌드..

공부/자기계발 2023.02.11

벡터(Vector) 재할당 속도 줄이는 법

벡터 재할당 속도를 낮추려면 1. 벡터를 초기화할 때 벡터에 더 많은 메모리를 미리 할당합니다. 2. 벡터에 새 요소를 추가하기 전에 벡터의 크기를 수동으로 늘릴 수 있습니다. 다음은 예시입니다. 1. 더 큰 크기로 벡터 초기화 std::vector v(1000); // Initialize vector with 1000 elements 2. reserve()를 사용하여 메모리를 사전 할당합니다. std::vector v; v.reserve(1000); // Preallocate memory for 1000 elements 3. resize()를 사용하여 벡터의 크기를 수동으로 증가시켜줍니다. std::vector v; v.resize(1000); // Increase the size of the vect..

공부/C++ 2023.02.07

똑똑하게 개발자 면접 준비하는 방법

똑똑하게 개발자 면접 준비하는 방법 처음 코딩 공부 시작할 때 아무도 이야기해주지 않았고 들어보지 못한 조언이지만, 꼭 미리 알아둬야 하는 팁입니다. 📌 영상 내용 정리 800건의 면접을 진행해 본 아마존 수석 엔지니어가 알려주는 똑똑하게 코딩 면접 준비하는 방법 (특히 시니어, 스태프, 수석 엔지니어에게 필요한 방법). 👇 자료 구조와 알고리즘 코딩 테스트 면접이 생긴 이유 실력 없는 개발자를 고용하면 회사에게 엄청난 기회비용이 발생한다. 하지만 실력 있은 개발자를 고용하면 반대로 엄청난 이득이다. 문제는 한 사람이 좋은 인재인지 아닌지 판단하는데 충분한 시간이 주어지지 않는다. 최대 6시간 안에 좋은 인재인지 아닌지 가려내야 하기 때문에 단시간에 판단할 수 있는 매커니즘이 필요하다. 자료 구조와 알고..

공부/자기계발 2023.02.07

벡터에서 push_back을 이용할 때 메모리가 왜 2배씩 늘어나는가?

push_back 메서드를 사용할 때 벡터의 메모리 사용량이 두 배가 되는 이유는 벡터가 사용하는 동적 메모리 할당 전략 때문입니다. 벡터는 동적 메모리 할당을 사용합니다. 즉, 런타임 중에 필요에 따라 메모리를 할당합니다. push_back 메서드는 벡터의 끝에 새 요소를 추가하고, 벡터의 현재 메모리 용량이 새 요소를 저장할 만큼 크지 않을 경우 벡터는 더 많은 메모리를 할당해야 합니다. 벡터 요소가 인접한 메모리 블록에 저장되도록 하기 위해 벡터는 일반적으로 각각의 새 요소에 충분한 메모리를 할당하는 대신 더 큰 청크로 메모리를 할당합니다. 이는 성능 면에서 비용이 많이 들 수 있는 메모리 할당 및 할당 해제 횟수를 줄이기 위해 수행됩니다. 벡터의 메모리가 부족하면 일반적으로 메모리 용량을 두 배로..

공부/C++ 2023.02.07
반응형