자바생
article thumbnail
@EntityGraph
Spring 강의/Spring data JPA 2022. 4. 13. 13:24

@EntityGraph? 연관관계를 맺은 엔티티들을 SQL 한번에 조회 fetch join과 매우 유사하다고 생각 연관된 엔티티를 한번에 조회하는 다양한 방법 가정 Member와 Team은 N:1 양방향 연관관계를 가짐 member1은 team1, member2는 team2, member3은 team3, member4는 team4 member, team 지연로딩 설정 List members = memberRepository.findAll(); for (Member member : members) { System.out.println("member.teamClass = " + member.getTeam().getClass()); System.out.println("member.team = " + membe..

article thumbnail
벌크 연산
Spring 강의/Spring data JPA 2022. 4. 12. 01:27

순수 JPA 사용 조건에 맞는 엔티티들의 값을 일괄 수정하고 싶다면 벌크 연산을 사용하면 된다 public List bulkAgePlus(int age) { return em.createQuery("update Member m set m.age = m.age + 1 where m.age >= : age", Member.class) .setParameter("age", age) .getResultList(); } public List bulkAgePlus(int age) { return em.createQuery("update Member m set m.age = m.age + 1 where m.age >= : age") .setParameter("age", age) .getResultList(); } 위..

article thumbnail
페이징과 정렬
Spring 강의/Spring data JPA 2022. 4. 11. 02:55

JPA 페이징 public List findByPage(int age, int offset, int limit) { return em.createQuery("select m from Member m where m.age = :age order by m.username desc", Member.class) .setParameter("age", age) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); } public long totalCount(int age) { return em.createQuery("select count(m) from Member m where m.age = :age", Long.class) .setParameter("..

article thumbnail
쿼리 메서드

쿼리 메서드란 repository interface에 선언되는 DB에서 정보를 찾는 메서드 spring data JPA가 제공하는 쿼리 메서드 기능 메서드 이름으로 쿼리 생성 메서드 이름으로 JPA NamedQuery 호출 @Query 어노테이션을 사용하여 repository interface에 쿼리 직접 정의 메서드 이름으로 쿼리 생성 spring data jpa를 사용하지 않는다면 작성해야할 JPQL public List findByUsernameAndAge(String username, int age) { return em.createQuery( "select m from Member m" + " where m.username = :username" + " and m.age = :age", Memb..

article thumbnail
데드락(2022.04.03 수정)
Operating System 2022. 3. 27. 15:19

Deadlock 정의 일련의 스레드들이 서로가 가진 자원을 기다리며 block 된 상태 자원에는 하드웨어 자원, 소프트웨어 자원이 있다. 하드웨어 A -> B 디스크에 카피하고 싶다. 그러면 둘 다 점유해야 하지만 각각 하나씩 점유하고 있으면 어느 누구도 진행이 되지 않는 데드락 상태에 도달하게 된다. 소프트웨어 memory, 세마포어 락을 거는 세마포어 두 개를 얻어서 실행시키고 싶다. 그러나 각각 하나씩만 할당받으며 서로의 자원을 원할 경우 프로세스가 자원을 사용하는 절차(4단계) 자원 요청 요청이 즉시 허용되지 않으면(mutex 락을 다른 스레드가 가지고 있는 경우), 요청 스레드는 자원을 얻을 때까지 "대기" 자원 획득 자원 사용 자원이 mutex 락이라면, 스레드는 임계구역에 접근할 수 있음 자..

Singleton Pattern
Design Pattern 2022. 3. 17. 18:12

기본 User, Main 클래스 package singletonPattern; public class User extends Thread{ public User(String name) { super(name); } public void run() { Printer printer = Printer.getPrinter(); printer.print(Thread.currentThread().getName() + " using " + printer.toString() + "."); } } package singletonPattern; public class Main { private static final int NUM = 5; public static void main(String[] args) { User[..

article thumbnail
Command Pattern
Design Pattern 2022. 3. 15. 16:07

Command Pattern 이란 무엇인가요? 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우 1번 버튼을 누르면 재생이 되고, 2번 버튼을 누르면 정지가 됨 실행될 기능을 캠슐화함 기능의 실행을 요구하는 invoker, 클래스와 실제 기능을 실행하는 receiver 클래스 사이의 의존성 제거함 실행될 기능의 변경에도 invoker 클래스를 변경하지 않아도 사용할 수 있음 Command Pattern을 사용함으로써 어떤 장점이 있을까요? 기존 클래스가 변경되지 않으면서 명령을 쉽게 추가할 수 있음 실제로 작업을 수행하는 개체에서 작업을 호출하는 개체를 분리함 이벤트를 발생시키는 클래스를 변경하지 않고 새 명령을 추가할 수 있으므로 확장성 좋음 즉, 버튼을 누를 때 버튼 클래스를 변경하..

State Pattern
Design Pattern 2022. 3. 12. 01:51

State Pattern은 무엇인가요? 상태에 따라 동일한 작업이 다른 방식으로 실행될 때 해당 상태가 작업을 수행하도록 위임하는 디자인 패턴 Context, State, Concrete class 개념 Context 상호 작용할 클라이언트에 대한 인터페이스를 정의 객체의 현재 상태를 정의하는 데 사용할 수 있는 구체적인 상태 객체에 대한 참조 유지 State 각 구체적인 상태가 수행해야 할 작업을 선언하기 위해 인터페이스 정의 Concrete State에 정의된 메서드에 대한 구현을 제공 객체의 내부 상태가 변경될 때, 객체가 동작을 변경할 수 있는 패턴 객체가 클래스를 변경하는 것으로 보임 알림 “상태”에 따라 알림을 수행할 때 모바일의 “동작”이 변경된다. 상태가 vibration이면 진동이 울림 ..

article thumbnail
HandlerMapping에서 order는 어디에 사용될까?
Spring 2022. 3. 11. 15:17

새싹 스터디 3주차 미션을 하다가 MVC 패턴에서 URI를 View에 쉽게 매핑하는 방법을 배웠다 예로 Form을 요청받을 때, 굳이 controller에서 매핑되는 메서드를 사용할 필요 없이WebMvcConfigurer를 사용하여 매핑을 해줄 수 있다. 하지만 코드 중에 setOrder라는 메서드를 사용했다. 오늘은 order는 어디에 사용되는지 알아보기 위해 글을 써보겠다! 해결해야 할 의문점 @Configuration public class MvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.setOrder(Ordered.LOWE..

article thumbnail
final 키워드
Java 2022. 3. 5. 16:01

이번에 새싹 스터디에서 코드 리뷰에 대한 내용 중 static final을 사용할 지, final을 사용할 지 구분이 되지 않음 그래서 이번 기회에 final을 제대로 공부해보고자 정리해봄 final 키워드는 무엇인가요? 재할당 불가를 명시하는 키워드 final 키워드는 변수, 메서드, 파라미터, 클래스에서 사용하는 “non-access modifier(비접근 수정자)” 로서, 각각 사용하는 context마다 사용법이 다릅니다. context마다 사용법이 다르다고 말씀하셨는데 어떻게 다른가요? primitive 변수는 한 번 초기화되고 이후에 수정할 수 없음 reference 변수는 다시 재할당할 수 없지만, 내부 값은 수정할 수 있음 메서드는 overriding을 prevent함 클래스는 상속을 pre..

Strategy Pattern
Design Pattern 2022. 3. 4. 21:11

우리는 게임할 때, strategy(전략)을 자주 바꿔서 게임을 하게된다. strategy pattern은 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 변화되는 부분을 각각 클래스 set으로 만든다. 해당 책에서와 같이 공격하는 클래스, 움직이는 클래스를 생성 공격을 하는(발을 찬다. 주먹을 찌른다) 행동을 각 클래스로 생성한 뒤, 공격하는 클래스에 상속 관계를 맺는다. 다양한 방식으로 특정 작업을 수행하는 클래스를 선택하여 strategy라고 하는 별도의 클래스로 추출 context = origin class context에는 strategy를 참조하는 필드가 존재해야함 context가 strategy를 직접적으로 실행하는 것이 아님 context는 strategy에 대해 잘 모름 contex..

article thumbnail
메모리 관리(2022.04.09 수정)
Operating System 2022. 1. 23. 23:51

왜 메모리 관리를 해야할까? 일련의 프로세스가 CPU를 공유하면서 CPU 스케줄링을 통해 CPU 이용률과 컴퓨터 응답속도를 향상시킴 하지만 결국 성능 향상을 "실현" 시키기 위해서는 많은 프로세스를 메모리에 올릴 수 있어야하고, 유지할 수 있어야함 즉, 메모리를 "공유"해야함 따라서 많은 프로세스를 메모리에 올리기 위해서는 메모리 관리를 "효율"적으로 해야할 필요가 있음 CPU는 어떻게 작동할까? Program Counter 값에 따라 메모리로부터 다음 수행할 명령어를 가져옴 명령어는 특정 메모리 주소에서 loading 또는 storing 함 메모리로부터 명령어를 가져오고, 명령어를 해독하여 메모리에서 피연산자를 가져와 피연산자에 대해 명령어를 실행한 후 계산 결과를 메모리에 다시 저장함 캐시가 생긴 이..

728x90

검색 태그