6. JVM 구조와 가비지 컬렉터
JVM 구조아시다시피, 자바는 운영체제의 종류와 무관하게 실행가능하다.자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 읽을 수 있는 기계어로 바꿔준다.JVM은 크게 4가지로 나뉜다. 1. Class Loader자바로 코드를 작성하면 java파일이 생성된다..java파일을 컴파일하면 .class파일(바이트 코드)이 생성된다.이렇게 생성된 .clas
JVM 구조아시다시피, 자바는 운영체제의 종류와 무관하게 실행가능하다.자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 읽을 수 있는 기계어로 바꿔준다.JVM은 크게 4가지로 나뉜다. 1. Class Loader자바로 코드를 작성하면 java파일이 생성된다..java파일을 컴파일하면 .class파일(바이트 코드)이 생성된다.이렇게 생성된 .clas
Maven자 만약에 우리가 프로젝트를 할 때 어떤 라이브러리를 사용한다고 하자.우리에게는 3가지 시나리오가 있다. 라이브러리를 다운받고, 각 프로젝트의 lib 폴더에 복사하기. 프로젝트 만들 때마다 복사해야 된다… 라이브러리를 외부에 두고 프로젝트들이 가져다 쓰기 하지만 배포할 때 라이브러리가 포함되지 않아서 힘들다.. 중앙 저장소에 라이브러리들을
HTTP는 어떻게 데이터를 전달할까? GET get은 URI의 쿼리 파라미터로 데이터를 전달한다.(? 뒤의 쿼리를 의미한다.)코드로 받아오는 방법은 두가지가 있다. @RequestParam : 메소드에 해당 어노테이션을 붙인 변수를 만들어서 받아온다! 클래스를 만들어서 가져오기 : 메소드에 해당 클래스 객체를 넣어주면 알아서 매핑되서 받아온다.이때 변수
HTML을 체험하기 위해 필요한 POSTMAN 추후 알게 되겠지만, POSTMAN이라는 프로그램을 다운받자.(브라우저로 테스트하면 get요청밖에 확인가능하기 때문이다.)일단은 웹브라우저로 해보자. @RestController 와 @Controller@RestController는 사용자가 요청하면 데이터를 응답하는 어노테이션이다.@Controller는 사
HTTPHTTP_더_알아보기HTTP는 문서를 전송하는 stateless 통신 프로토콜이다!종류는 다음과 같다!GET : 데이터 줘!POST : 데이터 추가해줘!PUT : 데이터 수정해줘!DELETE : 데이터 삭제해줘! 그렇다면 ‘어떤’ 데이터를 요청하거나 보낼지를 알려줄까?이는 쿼리 파라미터(URI의 ? 부분)를 쓰거나,MIME type으로 알려줄 수 있
이번엔 스프링부트를 통해 블로그를 한번 만들어보자!유튜버 데어프로그래밍의 강좌를 보며 제작한다!!! 먼저 Oracle JDK SE와 MySQL을 설치해주자.JDK는 홈페이지에서 다운받고, MySQL은 맥의 homebrew로 설치가 가능하다!MySQL 설치 관련 링크 그리고 이클립스에서 스프링을 사용할 수 있게해주는 STS 툴 이라는 게 있다.나는 인텔리제이
스프링 부트 동작원리 톰캣 필터 권한, 인증, 인코딩… 디스패처 요청된 주소에 맞는 컨트롤러를 호출 <얘네는 요청때마다 메모리에 로딩><요청이 올 때까지 대기>재사용하는 게 아니라 새 쓰레드를 사용함4. 컨트롤러 - 요청에 포함된 데이터 받음, 다른 서비스 호출..5. 서비스6. JPA 레포지토리7. 영속성 컨텍스트
이 문제는 참 고생 많이 했다 ㅋㅋ… 틀렸던 접근 1 주어진 문자열을 char 배열로 받은 다음, 이 녀석을 ArrayList에 저장하자.그 다음 arrayList를 하나더 추가해서 마치 스택처럼 사용하자.그렇게 모든 명령을 수행하고 나면두 arraylist에 저장된 요소들을 반복문으로 하나씩 출력하자. 123456789101112131415161718
문제괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄
문제문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입출력입력 : 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단
데이터베이스 인덱스데이터베이스도 컴퓨터의 하드 디스크(HDD, SSD)에 데이터를 쓰거나 적는다. 랜덤 IO와 순차 IO하드 디스크 드라이브에 접근하려면 플래터를 돌려서 데이터가 저장된 위치로 헤더를 이동시켜서 데이터를 읽는다. 랜덤 IO는 읽어야 할 데이터의 위치가
문제 상황기리기리 프로젝트에서 기자재 대여 반납 기능을 중점적으로 개발하다가 광운대학교 미디어커뮤니케이션 랩실에서는 기자재 뿐만 아니라 랩실도 대여 반납을 할 수 있어야 한다는 피드백을 받았다. 문제는 랩실과 기자재 로직이 상당 부분 비슷하지만 랩실의 대여 로직이 기자
문제 상황기리기리 서비스는 대여 서비스라서 대여 기간과 실제 대여 수령 날짜, 대여 반납 날짜가 중요하다. 문제는 서버 시간대 설정에 따라 실제로 의도한 시간이 맞지 않을 수 있게 된다는 점이다. 그래서 서버를 한국 시간대로 모두 설정해주는 일이 필요하다. 이런 문제는
문제 상황광운대학교 미디어커뮤니케이션 학부 기자재 대여 웹 서비스를 구현할 때 광운대학교 미디어커뮤니케이션 학생만 사용할 수 있도록 해야한다. 하지만 문제는 광운대학교에서는 Open API를 제공하지 않아서 학생 구성원을 어떻게 확인해야 할 지가 큰 문제였다. 개선 방
요약Rest API의 HATEOAS 원칙을 적용하면 페이징 방식에 의존하지 않는 API를 구현할 수 있다. 첫 페이지에 접근할 수 있는 API만 프론트엔드에게 알려주고 다른 페이지에 접근하는 API는 첫 페이지에 접근하는 API의 응답 데이터에 동적으로 담겨있게 하자.
Software Engineering?개발 운용 유지보수 등 생명 주기 전반을 체계적, 서술적, 정량적으로 다루는 학문 SLDC요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수 하는 과정 요구사항 분석요구사항 유도 : 대화를 통해 요구