
Iterator 패턴 책 JAVA 언어로 배우는 디자인 패턴 입문 3판 을 읽고 정리한 내용입니다. Intro Java 언어에서 배열의 모든 요소를 표시하려면 다음과 같이 for문을 사용합니다. int[] arr = {1, 2, 3, 4, 5}; for(int i=0; i) { System.out.println(arr[i]); } // 결과 // 1 // 2 // 3 // 4 // 5 여기서 변수 i는 0부터 시작하여 하나씩 증가시키면, 현재 주목하는 요소는 '다음', '그 다음'으로 차례차례 진행됩니다. 배열의 길이-1 까지 i가 증가하기 때문에 위의 for 문에서는 모든 배열을 탐색하게 됩니다. 여기서 i의 역할을 추상화하여 일반화한 것을 디자인 패턴에서는 Iterator 패턴이라고 합니다. Iter..

Garbage Collection(GC) 이란?프로그램을 개발 하다 보면 더이상 쓰이지 않는(참조되지 않는) 메모리인 Garbage가 발생하게 됩니다.C언어에서는 free()라는 함수를 통하여 개발자가 직접 메모리를 해제해주어야 하지만, Java나 Kotlin 에서는 Garbage Collector가 알아서 불필요한 메모리를 정리해주기 때문에 개발자의 실수로 memory leak이 발생하는 일을 막아줍니다.그런데 GC는 어떻게 알아서 똑똑하게 불필요한 메모리를 판단하여 정리하고, 또 언제 정리를 할까요?이를 알기 위해선 먼저 Java의 컴파일 과정과, JVM 메모리구조, GC의 여러가지 방식들에 대하여 살펴볼 필요가 있습니다.Java 컴파일 과정 자바 프로그램을 실행하면, JVM은 OS로부터 메모리를 할..
LOMBOK 라이브러리 사용시 File→settings에 가서 Annotation Processor검색 Enable annotation processing 에 체크하기 Community 버전 사용시 File→settings->BuildTools->gradle 열기 Build and run using, Run tests using 부분이 Gradle로 되어 있다면 IntelliJ IDEA로 바꾸기 스프링부트 프로젝트 3.x 버전 사용시 유의사항 스프링부트 프로젝트 3.x버전을 사용할 경우 자바17버전과 호환되기 때문에 자바 다른버전을 쓰면 에러가 발생합니다. 따라서 스프링부트 프로젝트 3.x버전 사용시에는 자바17버전을 써야합니다.
![사이드 프로젝트 [국비의 모든것] - 게시글 작성 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnwxCl%2FbtsjGnCLhJz%2FHik2zZnE1g0YnwBk8TPhek%2Fimg.png)
목차UI요구사항 분석기능 구현 여느 커뮤니티 사이트에 있는 필수 기능인 게시글 작성 기능을 개발해보도록 하겠습니다.UI - BoardController.java/** 커뮤니티 작성 폼 */@GetMapping("/community/new")public String boardForm(@ModelAttribute CommunityFormDto form) { return "board/community/communityForm.tiles1";}먼저 /boards/community/new 로 Get 요청시, communityForm.jsp 를 서버사이드 렌더링합니다. 렌더링된 화면은 다음과 같습니다. 요구사항 분석위의 UI를 토대로 요구사항을 정의해보겠습니다.글 작성한 뒤, 간단하게 클라이언트에서 유효성 ..