본문 바로가기

java13

자바기본개념 - 자바가상머신 및 가비지 컬랙션 이 글은 자바 프로그래밍 면접 이렇게 준비한다(노엘 마크엄) 및 여러 블로그들을 참고하며 간단한 부분들만 정리한 글이다. 자바 가상머신(JVM)은 프로그램이 실행되는 플랫폼이다. 플랫폼은 여러가지 기능을 제공해주는 실행환경이다. 자바 컴파일러는 .java파일을 .class 라는 Java Byte Code로 컴파일한다. 이 바이트코드는 기계어가 아니기 때문에 OS에서 바로 실행되지 않는다. 이때 JVM은 OS에 맞게 해석해 주는 역할을 한다. 여기서 다른 컴파일 언어와의 차이점은 JVM은 운영체제와 애플리케이션 사이에 위치하면서 애플리케이션이 플랫폼에 상관없이 독립적으로 실행될 수 있도록 만들어 준다. 즉, OS에 상관없이 실행한다는 것이다. JVM은 모든 중요한 애플리케이션 개발에서는 애플리케이션이 JV.. 2021. 10. 22.
JAVA - Class 객체의 ArrayList 다중 정렬 ArrayList 를 class로 정의한 후 정렬 해야할 때 Comparator를 만들어서 정렬을 할 수 있다. 사용방식은 아래와 같다. private static class Meeting { private Long startTime; private Long endTime; public Meeting(Long startTime, Long endTime) { this.startTime = startTime; this.endTime = endTime; } public Long getStartTime() { return startTime; } public Long getEndTime() { return endTime; } } static class MeetingComparator implements Compa.. 2021. 9. 13.
SpringBoot Controller Test 작성 및 spring-security에서의 test 프로젝트를 진행할 때 Test를 진행하는 것이 매우 중요하다. 그 이유는 백엔드로서 코드를 작성하면 그 코드가 올바르게 동작하는지 확실히 해야 하기 때문이다. repository 함수가 제대로 동작하는지, service가 제대로 동작하는지, controller이 제대로 동작하는지 등을 확인해야 한다. 여기서는 controller test를 살펴볼 것이다. controller를 만들고 제대로 작동되는지 확인하기 위해서는 test코드를 작성하지 않는다면 post나 put 같은 기능을 일일이 웹에서 실행을 하고 이것저것 시도하는 것을 서버를 켜고 해야 하는 번거로움이 있다. 그렇기에 test코드를 작성하는 것이 바람직하다. 아래는 간단한 post에 대한 코드이다. PostsApiController import.. 2021. 8. 31.
JPQL 개념과 스프링 데이터 JPA 쿼리메서드 이용 JPA를 사용하여 프로젝트를 구현할 때 스프링 데이터 JPA를 이용하고 repository 인터페이스를 작성하여 CRUD기능을 사용하였을 것이다. 우리는 JPA를 사용하기 위해 Repository를 만들고 CRUD기능을 수행할 수 있다. 하지만 간단한 형식의 엔티티만을 가져올 뿐이지 특정 범위, 특정 경우, 특정 순서 등 복잡한 경우에 적용하기는 힘들다. 이러한 경우는 자세한 sql문을 이용해서 해결할 수 있다. ORM은 엔티티 객체를 대상으로 개발하므로 검색을 위한 sql문도 엔티티 객체를 대상으로 해야 하기에 JPQL을 사용한다. 스프링 데이터 JPA에서는 복잡한 쿼리를 쿼리 메서드를 이용하여 JPQL을 직접 짜는 것이다. 이 글에서는 JPQL에 대해서는 간단한 설명과 파라미터 바인딩에 대해서만 설명.. 2021. 6. 27.