1.컴퓨터 기초
-자료 구조
*재귀를 활용한 스택 정렬
루프 구조 없이 스택을 정렬하는 방법
stack의 adt function만 사용해야 함
is_empty(), push, pop, top
재귀의 종료 조건
-알고리즘
-c언어 기초
*int main과 int main void의 차이점
(최신 버전에서는 변경돼었다. 최신 버전에서는 foo와 foo(void)는 같다.)
c++에서는 차이가 없다. 하지만 이전 버전의 c에서는 매개 변수가 없이만 호출될 수 있든 점을 명확하게 지정한 것이기 때문에 기술적으로 더 좋다고 간주한다.
이전 버전의 c에서 ()일 경우 매개 변수를 넘기는 것은 문제가 없었다.
(void) 일 경우 에러가 발생한다.
c++에서는 (), (void) 모두에서 매개 변수가 있으면 에러가 발생한다.
-네트워크 기초
2.개발 기초
-자바
*oop(객체지향프로그래밍)
상속, 은닉, 다형성 등 실제 엔티티 구현을 목적으로 함.
주요 목적은 데이터와 function을 함께 묶어 코드의 다른 부분이 해당 기능을 제외하고 이 데이터에 접근할 수 없도록 하는 것.
구성 요소
access modifier : 메서드의 액세스 유형 public, protected, private, defualt
*jvm 메모리
Method : 클래스이름, 부모 클래스이름, 메서드, 변수 정보, 정적 변수 저장 모든 jvm에는 하나의 Method area가 존재하고 이는 고유 자원이다.
heap : 모든 객체가 저장되는 공간으로 jvm 별로 하나만 존재하는 공유 변수이다.
stack : 모든 스레드별로 하나의 runtime stack이 존재한다. 메서드 호출을 저장하고 해당 메서드의 모든 지역 변수의 해당 프레임에 저장된다. 스레드가 종료되면 jvm에 의해 파괴된다. 공유 리소스가 아니다.
pc register : 스레드의 현재 실행 명령 주소를 저장, stack pointer 저장 각 스레드 별로 각 pc 레지스터가 있다.
native method stack : 모든 스레드에 대해 별도의 네이티브 스택이 생성됨.
핵심은 자바의 어플리케이션은 다중 스레드로 구현되고 method, heap를 공유한다는 것이다.
다중 스레드에서 공유자원의 동기화 문제가 핵심인 것처럼 자바에서도 method와 heap영역을 잘 분배하고 관리하는 것이 매우 중요하다.
-스프링
-빌드툴(maven, gradle)
3.블록체인 개발
-솔리디티 기본
-스마트 컨트랙트 분석
4.기타
-도커
-디자인 패턴
5.개별 프로젝트
-cpu scheduler
-ghostcops
'매일 개발 공부' 카테고리의 다른 글
매일 개발 공부 2022.5.31 (4) | 2022.05.31 |
---|---|
매일 개발 공부 2022.5.29 (0) | 2022.05.29 |
매일 개발 공부 2022.5.27 (0) | 2022.05.27 |
매일 개발 공부 2022.5.25 (0) | 2022.05.25 |