본문 바로가기

매일 개발 공부

매일 개발 공부 2022.5.26

728x90

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

 

 

728x90

'매일 개발 공부' 카테고리의 다른 글

매일 개발 공부 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