전체 글 33

(임시저장) 몽고DB 설치

https://m.blog.naver.com/linuxni/223350994194 시놀로지 Nas 도커로 몽고 DB 설치하기유투브 보다가 문득 몽고DB 에 관심을 같게 되어 설치하며 삽질(?) 을 좀 하였습니다. 저와 같은 고생을 ...blog.naver.com참고 https://hippogrammer.tistory.com/352 docker 명령어 root 이외 사용할 수 있도록 docker 그룹 포함1. docker 그룹 존재 유무 확인 docker 그룹 확인$ cat /etc/group | grep -i docker docker:x:995: docker 그룹이 없다면 docker 그룹 생성 필요$ sudo groupadd docker (docker group이 없는 경우) $ sudo systemc..

GC(Garbage Collector) 관련

현업에서 일하다 보니 OOM도 만나게 되고, 메모리 누수, 원인모를 에러 등.. 많은 부분을 겪어보게 되었다. 개인 프로그램에서는 신경도 쓰지 않았던 것들을 생각해야 했고, 원인을 해결하기 위해서 폭 넖은 생각과 다양한 지식이 필요했다. 그 중 중요하게 생각하는 것 중 하나는 GC이다. GC란? Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 JVM의 프로세스이다. 장점 : 개발자가 안쓰는 힙 영역 객체를 지우거나 하는 작업을 안해도되며, 힙영역의 메모리가 부족해지면 알아서 작동한다. 단점 : GC가 언제 작동하지 모르며, Major GC가 동작할 때는 모든 쓰레드가 멈추며, 이를 Stop-The-World 라고 부른다. 학교 다닐 때,..

OOM(Out Of Memory) 관련

초보 개발자(본인)가 입사 후 첫번째 프로젝트가 끝나고, 다른 프로젝트를 하러 갔다. 어느날, 이전 프로젝트의 사람을 만나서 이야기를 하는데 이전의 코딩방식의 문제점을 듣고 꼭 고쳐야겠다는 생각과 함께 이 글을 작성하게 되었다. 메모리 : 컴퓨터가 연산을 위해 참조하는 공간이다. 그림 참조 : https://jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/ 프로그램을 실행하게 되면, OS는 메모리에 실행할 프로그램의 소스코드를 올린다. 이를 코드 영역이라고 한다. 프로그램이 사용하는 전역변수, 정적변수는 데이터 영역 사용자의 동적 ..

02. 변수와 타입

변수란? 값을 저장할 수 있는 메모리 공간 -> 메모리 공간을 차지한다. 현업에서는 메모리가 한정이 되어 있으므로 무작정 크게 만들지 않게 조심하자. 1. 변수의 선언 : 메모리 주소에 붙여진 이름 타입 + 변수이름 ; int test; 2. 변수에 값을 저장 : 대입 연산자(=)를 이용하여, 좌변의 변수(메모리공간)에 값(데이터)를 저장하는 것 int score = 100; (score라는 메모리 공간에 100이라는 값을 저장) 리터럴 : 소스코드에서 직접 입력된 값을 의미한다. 여기서는 100이라는 정수가 이에 해당한다. 예시 : ( 0 , 0.25, 'A', "test", true ) 3. 변수의 값 쓰기 : 변수에 저장된 값을 이용하는 방법 int total = 100 + score; (100 +..

01. 자바 시작하기

1. 프로그래밍 언어 컴퓨터가 이해할 수 있는 기계어, 사람이 이해하는 자연어의 사이에서 다리역할을 하는 언어 고급언어 : 사람이 이해하기 쉬운 언어, 컴파일러를 통해 기계어로 변환되는 언어(C,C++,Java) 저급언어 : 기계어에 더 가까운 언어(어셈블리어) 소스 : 이러한 프로그래밍 언어로 작성된 내용 컴파일러 : 프로그래밍 언어를 기계어로 변환하는 소프트웨어 프로그램 : 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것 2. 자바의 특징 이식성이 높은 언어 : 대부분의 운영체제에서 사용할 수 있다. (Window, Linux, Unix) 객체지향 언어 : 객체를 만들고 이것들을 조립, 연결하여 전체 프로그램을 완성하는 객체지향 언어이다. 함수적 스타일 코딩을 지원 : Java 8버전 부터 람다식..