일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 쿠버네티스
- 자바 ORM 표준 JPA 프로그래밍
- jvm
- Real MySQL
- 스프링
- 토비의 스프링
- K8s
- Java
- IntellJ
- Stack
- 이스티오
- 토비의 스프링 정리
- 백준
- thread
- Stream
- mysql
- spring
- Collection
- list
- redis
- MSA
- 스트림
- SpringBoot
- GC
- 자바
- Kotlin
- gradle
- 보조스트림
- JPA
- OS
- Today
- Total
목록전체 글 (151)
인생을 코딩하다.
운영 체제 1. 제어 프로그램(Kernel) 하드웨어를 제어하는 프로그램 메모리, CPU, 단말기, 프린터 등 시스템의 자원 활용도를 높이기 위해 스케줄링과 자료 관리를 하는 핵심 요소이다. 2. 명령어 해석기(Shell) 사용자의 명령을 입력받아 시스템 기능을 수행하는 명령 해석기 사용자와 시스템 간의 인터페이스를 담당하는 프로그램이다. 3. 매크로 어셈블리어를 사용하기 쉽도록 명령어들을 문자로 치환하여 확장해 준다. 메크로 라이브러리는 여러 프로그램에서 공통적으로 자주 사용되는 매크로들을 모아 놓은 라이브러리다. 매크로는 일정의 문자열 치환과 같이 사용된 횟수만큼 명령어를 생성, 삽입하여 실행한다. 매크로 내에 또 다른 매크로를 정의할 수 있다.3-1. 매크로 프로세서의 기본 기능 매크로 정의 인식 ..
DATETIME 자료형으로 저장된 게시물의 생성 날짜를 년도 - 월 - 일 형식으로 표시하고 싶어서 자바에서 처리할지, 뷰에서 처리할지, 어떤 방식으로 처리할지 고민하였다. 결국은 데이터베이스에서 받아올 때 내가 원하는 형식으로 받아오는 방법을 택했다. 간단하고, 늘어나는 코드의 양이 적은 것이 그 이유이다. MySQL에서 원하는 포맷으로 SELECT하려면 date_format 함수를 사용하면 된다. date_format(DATE, '포맷 형식') Y(4자리 년도), y(2자리 년도) m(월) d(일) H(24시 표기), h(12시 표기) i(분) s(초) 예를 들어 생성 날짜(createdDate) 칼럼을 가지고있는 테이블 temp가 있으면 SELECT date_format(creat..
1. 프로세스 메모리 애플리케이션이 메모리에 로드되어 실행될 때, 이것을 운영체제 프로세스(process)라고 부른다. 프로세스가 차지하는 메모리는 몇 개의 세그먼트로 나뉘어진다. 1) Stack Segment 메소드가 호출되면, Stack Segment 영역에 그 메소드 공간이 할당된다. 이 공간에 그 메소드의 파라미터 변수, 지역 변수가 생성된다. 메소드가 리턴될 때, 이 메모리 공간도 제거된다. 재귀 호출이 무한 루프에 빠지면, Stack Segment 영역이 부족해져서 Stack Overflow Error가 발생한다. Stack Overflow Error의 원인은 대부분 재귀 호출이 무한 루프에 빠진 것이다. 2) Data Segment Data Segment 영역에 생성되는 변수는 다음과 같다...
스프링에 대한 얘기를 하면 빠지지 않는 개넘이 '의존성 주입'이라는 개념이다. 프레임워크를 이용해 본 적이없는 경우라면 쉽게 이해하지 못하는 개념이라 간단한 이야기로 정리해보겠다. 의존성이라는 것은 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미한다. 그리고 주입은 말 그대로 와부에서 밀어넣는 것을 의미한다. 즉 의존성이 필요한 객체에 필요한 객체를 찾아서 '주입'하는 역할을 하게된다. 저욱 자세한 것은 구글링을 통해 알아보면 좋겠다. 밑에 예제는 레스토랑 객체를 만들고 레스토랑에서 일하는 세프 객체를 주입하는 예제이다. (실제 코드를 개발할 떄는 그다지 사용될 일이 없는 에제지만, 의존성 주입 코드를 통해서 이해하는 용도로 사용하려고 한다.) 우선 lombok을 이용해서 s..
스프링 툴로는 현재 Eclips, STS, Intelli J 등을 쓰고 있습니다. 각 툴의 장단점과 사용법은 구글링하시면 나옵니다. 참고로 Intelli J는 일정 무료기간이 지나면 비용이 드는데, 학생분들은 졸업전까지 공짜로 쓸 수 있으니 Intell J를 추천합니다. 전 Eclips를 이용한 방법으로 설명해보겠습니다. 우선 톰캣이 돌아간다는 가정하에 Eclips상단 메뉴에 Help - Eclips Marketplace를 누릅니다. Spring Tools 4 (aka Spring Toll Suite 4) 4.5.0 (버전).RELEASE 를 설치합니다. 그 후 Package Explorer에서 마우스 우클릭 New - Spring Legacy Project Project name에 적당한 이..
객체를 가비지컬렉션의 대상으로 만드는 법 1. 메소드 내부에서 생성된 객체 메소드가 호출된 후 내부에 일부 객체가 만들어지고 메소드가 종료됬을 때, 메소드 내부의 객체들은 익명이 되어 가비지 컬렉션의 대상이 됩니다. 2. 참조 변수 재 지정 한 객체의 참조가 다른 객체를 참조할 경우. 이전 객체는 더 이상 참조를 갖지 못해 가비지 컬렉션의 대상이 됩니다. 2. 참조변수 무효화 객체의 참조 변수가 null로 변경된 경우 2. 이름이 없는 객체 이름이 없는 객체의 참조, 어느곳에도 저장되지 않기 떄문에.
GC에 관해 공부한 걸...기록하기! 자바에서는 JVM이 구성되어진 JRE가 제공되며 JVM에 구성되어 있는 가비지컬렉션이 자동으로 사용하지 않는 객체를 파괴시켜 준다. 보통 파괴하는 과정은 힙(heap)내의 객체 중 Garbage를 찾아낸 후 Garbage 객체를 반환하여 메모리를 회수한다. 또 다르게 말하자면, 마킹작업 (사용중인 메모리와 사용 하지 않는 메모리를 식별) 일반 삭제 (참조되지 않는 객체를 제거하고 빈 공간에 대한 포인터를 남겨둠 ) + 압축삭제 (삭제 된 객체와 객체 외 나머지 객체를 메모리 공간으로 효율적으로 사용하며 삭제) 그리고 JVM에 가비지 컬렉션은 객체를을 세대로 나누어 처리한다. 젊은 세대 - 새로운 객체들을 할당, 가득차면 가비지 컬렉션을 매우 빠른속도로 진행, 가벼운 ..