오늘 공부한 내용
- Spring 입문주차 2주차 시청
- 알고리즘 특강
어려웠던 내용
1. Entity에 대한 이해
- DB를 보다 쉽게 다루기 위하여 사용되는 JPA에서 관리되는 객체를 의미
- 하지만 실제 코드를 보면서 따라해봐도 뭐가뭔지 잘 모르겠다.
2. 영속성 컨텍스트
- Entity 객체들이 저장된 공간을 의미
새로 알게된점
1. 포인터 / C 언어
포인터란 변수의 메모리 공간의 주소를 가리키는 변수 이다.
변수명 앞에 *를 붙이면 된다.
✔️ 포인터 변수 선언
int a = 123;
int *p = &a; // &a 는 int a의 주소값
- 주소 연산자(&)는 변수의 이름앞에 사용하여, 해당변수의 주소 값을 반환하며 변수 a에 &를 붙힘으로 a의 주소값을 의미
- int *p = &a; 처럼 선언할 때에는 변수명(p) 앞에 *를 붙혀서 포인터 변수임을 명시
- 선언한 이후에 *p라고 쓰게 되면, 포인터 변수 p가 가리키는 주소의 값을 의미. 즉 123가 된다
- 즉 a 와 *p는 같다. (a에 저장된 값 = 123, * p가 가리킨 주소에 있는것 = 123)
- 또 &a 와 p는 같다. (a의 주소 값 = 10000, p가 가리키는 주소 = 10000)
중요 ! 자바에는 왜 포인터가 없을까?
- 자바에는 참조(Reference)가 있기 때문
- 포인터 vs 참조
- 포인터: 메모리를 직접 핸들링 할 수 있음
- 참조: 메모리를 직접 핸들링할 수 없음
- 포인터는 주소값을 임의로 변경가능하며 유연성과 성능을 향상시킬수 있지만 안정성이 떨어져 개발자가 실수하면 바로 에거로 이어질 수 있다. Java에서는 개발자의 실수를 방지하기 위해 자바가 메모리 영역을 관리한다.
- GC(Garbage Collector)가 실행될 때 마다 Heap 영역의 객체의 주소가 계속 바뀌기 때문 (자바가 관리)
- 더이상 stack에서 참조되지 않는 Heap 영역의 객체들은 GC가 제거
오늘의 느낀점
금일 특강에서는 알고리즘 처리방법, C언어에 대한 간단한 설명 을 해주었는데 현업에서도 자바 뿐만 아니라 컴퓨터의 근본이었던 C언어에 파이썬 등 다양한 언어까지 사용되니 개발자는 끊임없이 공부를 해야한다는 튜더님의 말씀을 들으며 참 갈길이 멀구나라는걸 느꼈다.
자바도 어렵게 느껴지는데 C언어는 정말 복잡한 구조였겠구나라고 생각이 든다.
그래도 나중에 따로 공부해 봐야지...
'개발자 일지 > TIL' 카테고리의 다른 글
스파르타 내일배움캠프 38일차 231110 (0) | 2023.11.14 |
---|---|
스파르타 내일배움캠프 37일차 231109 (1) | 2023.11.09 |
스파르타 내일배움캠프 35일차 231107 (0) | 2023.11.08 |
스파르타 내일배움캠프 34일차 231106 (1) | 2023.11.06 |
스파르타 내일배움캠프 31일차 231103 (1) | 2023.11.06 |