회고록 목록입니다. [회고, f-lab] 1, 2주차 회고, 좋은 멘티 & 멘토, 정보 공유 커뮤니티의 존재. [회고, f-lab] 3, 4주차 회고. 매주 QnA, 토론 with 멘티, 멘토. 성장. 1. 3주차 회고 멘토링질문의 80-90퍼센트는 자신있게 답변한듯하고 10-20퍼센트는 잘모른다고 답변을 했네요. 1,2주차에 비해 학습 방향성을 제대로 짚고 있다는 느낌이 듭니다. 점점 답변할 수 있는 질문도 많아지고, 꼬리 질문도 많이 답변할 수 있었습니다. 질-답 & 토론형 멘토링으로 생각하는 방식이 긍정적인 방향으로 바뀐게 현재 상태가 될 수 있었던 가장 큰 이유가 아닐까 싶습니다. 오늘은 멘토님께 현재 멘티들의 학습했던 & 학습 중인 컨텐츠를 공유하기도 했습니다. 제 컨텐츠 운영체제: Deadlo..
회고록 목록입니다. [회고, f-lab] 1, 2주차 회고, 좋은 멘티 & 멘토, 정보 공유 커뮤니티의 존재. [회고, f-lab] 3, 4주차 회고. 매주 QnA, 토론 with 멘티, 멘토. 성장. 안녕하세요 현재 2주차 f-lab 멘토링하고 있습니다! 좋은 내용이 많으니 적은 주차의 글이더라도 읽어주세요!ㅎㅎ 후회 없으실겁니다! 프랩 장점 Quick 정리 백기선님, 토비님도 멘토로 참여하십니다(제 멘토님은 네이버, 아마존, 마이크로소프트 출신 리드 개발자에요!). 멘티들은 현업과 병행하시는 분도 많고 스스로 언어 공부 많이해보신분, 토이프로젝트 하다 오신분, 부트캠프 경험하고 스스로 부족함을 느끼신 분 등이 옵니다 ㅎㅎ 기초가 있으며, 배움의 의지가 많으신 분들이 옵니다! 개발을 배우려는 사람들의 ..
안녕하세요! 오늘은 JVM 구조? 자바 애플리케이션 실행 과정? 컴파일 과정? 이전 시간에 이어 GC에 대해 알아보려 합니다! 이전 시간에 Garbage Collector가 Heap 메모리에 올라온 데이터의 생명을 관리한다고 했었죠! 이번 시간에는, ('왜 필요한지?' -> 참조) 기본 동작 개념은 뭔지! 실제 동작 과정은 어떤지! 마지막으로 JDK 7, 8이 GC 관련해서 어떤 차이가 있었는지! 알아볼겁니다:) 잘 따라오세요 가시죠! 1. Garbage Collector란? - 정의: Garbage Collector는 힙 공간에서 메모리의 수명 관리를 해주는 주체다. Garbage Collector의 메모리 수명 관리 판단 기준은 참조 유무입니다. 현재 프로세스 내의 변수가 객체를 참조하고 있으면 사용..
왜 JVM 구조를 알아야할까? 기술면접 질문에서 자바 애플리케이션의 실행 과정과 JVM 구조를 묻는 것을 보면, 이는 JAVA 개발자가 알아야할 필수 지식이다. JVM 구조를 알아야할 필요성을 먼저 인식하고 자바 애플리케이션의 실행 과정과 JVM 구조를 알아보자. 어떤 애플리케이션에서도 메모리 관리는 중요하다. 애플리케이션의 메모리관리가 효율적으로 이뤄질 수록 애플리케이션의 성능 또한 향상되기 때문이다. 메모리 관리 방법에는 수동적인 메모리 관리법, Garbage collector를 이용한 메모리 관리법 두가지가 있다. 1. 수동적인 메모리 관리법 메모리 관리를 개발자가 직접 하는 방법이다. 메모리 할당부터 해제까지 개발자가 명시적으로 호출해줘야한다. C++과 같은 경우, new와 delete를 이용해서..
1. 운영체제란? 목적? 분류? 2. 인터럽트란? 컴퓨터 시스템 동작원리로 알아보자. 3. 하드웨어, 메모리 및 메모리 보안 방법? 4. 프로그램의 구조, 실행 과정? 5. 인터럽트, 문맥 교환(컨택스트 스위칭), PCB 정의와 차이? 6. 프로세스란? 5 or 6가지 상태? 스케줄러? 7. 프로세스 생성? 자식 부모 관계를 이용한 협력? 8. 스레드, 멀티스레드란? 프로세스와의 차이? 9. CPU 스케줄링이란? 왜 필요? 알고리즘 종류, 평가 기준? 10. ''업데이트 예정" 1. CPU 스케줄링의 필요성 그냥 cpu를 프로세스에게 I/O 작업을 요청할 때 까지 주면 안될까? 아니면 시분할 방식으로 적당~히 나눠주면 안될까? 생각할 수 있다. 하지만 전자를 택하면 CPU 버스트(Burst) 작업이 긴 ..
1. 객체지향 프로그래밍이란? 1) 정의 프로그램을 단순히 데이터와 처리방법으로 나누는 것이 아니라, 수많은 객체라는 기본 단위들로 나누고 이들의 상호작용으로 서술하는 것을 지향하는 방식입니다.(즉, 프로그래밍의 방향성을 단순 데이터와 처리방식의 집합이 아닌, 객체들의 상호작용에 두는 관점입니다.) 여기서 객체란 하나의 역할을 수행하는 속성과 메소드의 묶음입니다. 물리적인 사물 혹은 추상적인 개념도 객체가 될 수 있습니다. *왜 지향인가? 프로그래밍을 모두 객체로 바라보는 것이 좋을 수도 있지만 나쁠 수도 있습니다. 왜냐하면 프로그래밍은 실제 세계와 완벽히 같지 않아서 객체로 표현이 안될 수도 있기 때문이입니다. 이에 '지향'이라는 단어를 사용합니다. 2) 장단점? 장점 코드 유지 보수 및 확장이 쉽다...
1. 운영체제란? 목적? 분류? 2. 인터럽트란? 컴퓨터 시스템 동작원리로 알아보자. 3. 하드웨어, 메모리 및 메모리 보안 방법? 4. 프로그램의 구조, 실행 과정? 5. 인터럽트, 문맥 교환(컨택스트 스위칭), PCB 정의와 차이? 6. 프로세스란? 5 or 6가지 상태? 스케줄러? 7. 프로세스 생성? 자식 부모 관계를 이용한 협력? 8. 스레드, 멀티스레드란? 프로세스와의 차이? 9. CPU 스케줄링란? 종류 평가 기준? 10. ''업데이트 예정" 1. 스레드란? 정의: 프로세스 내에서 실제로 작업을 수행하는 주체.(출처: TCP School), 프로세스 내 실행 단위.(출처: 위키백과) 스레드는 스레드 ID, 레지스터 세트, 프로그램 카운터, 스택으로 구성됩니다. 2. 스레드 특징? - 프로세스..
1. 운영체제란? 목적? 분류? 2. 인터럽트란? 컴퓨터 시스템 동작원리로 알아보자. 3. 하드웨어, 메모리 및 메모리 보안 방법? 4. 프로그램의 구조, 실행 과정? 5. 인터럽트, 문맥 교환(컨택스트 스위칭), PCB 정의와 차이? 6. 프로세스란? 5 or 6가지 상태? 스케줄러? 7. 프로세스 생성? 자식 부모 관계를 이용한 협력? 8. 스레드, 멀티스레드란? 프로세스와의 차이? 8. CPU 스케줄링란? 종류 평가 기준? 9. ''업데이트 예정" 1. 프로세스 생성? 생성 주체 - 운영체제: 컴퓨터를 시작하면 바로 시작되는 프로그램. - 이미 존재하는 프로세스: 운영체제에 의해 실행되는 프로세스 다음에 실행되는 모든 프로세스. 자원 획득 방법 운영체제의 자원 획득 방법은 크게 두가지가 있다. 대부..