JPA 관련 학습을 하는 도중에 일반적인 비즈니스 로직은 다 짰고 테스트로 돌려보고싶어서 테스트코드를 작성하는 도중에 다음과 같은 에러가 발생했다. No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 일단 내용을 읽어보니 현재 스레드에 Enti..
다음과 같은 다이어그램을 구현한 아래의 코드를 이용하여 노드 다이어그램의 최대 깊이를 구하는 코드를 작성하시오. DFS(깊이우선탐색) 과 BFS(너비우선탐색) 탐색방법을 이용하여 각각 작성하시오. TreeNode 클래스 class TreeNode { public int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; } } 메인 메소드 public static void main(String[] args) { TreeNode root = new TreeNode(10); root.left = new TreeNode(9); root.left.left = new TreeNode(7); root.left.right = new Tree..
지뢰찾기 게임을 제작한다고 가정하고, 각 사각형에 표시될 숫자를 입력하는 코드를 작성하시오. 출력 예시) 조건 사각형의 크기는 10x10 지뢰의 갯수는 10개로 가정하고, 임의의 위치에 놓여있다고 하거나 직접 위치를 지정해도 무관함 지뢰는 “ * ” 로 표시할 것. 나의 풀이 class Scratch { public static void main(String[] args) { Scratch a = new Scratch(); Cell[][] cells = new Cell[10][10]; for (int i =0; i
자바에서의 직렬화(Serialization)과 역직렬화(DeSerialization) 클래스를 만들 때, 해당 특정 클래스에서 사용될 객체를 만들 수 있으며 프로그램을 실행 / 종료하면 가비지 수집기 스레드를 통해 객체가 자체적으로 수거됩니다. 객체를 다시만들지 않고 해당 클래스를 호출하려는 경우 어떻게 될까요?? 이럴때 데이터를 바이트 스트림으로 변환하여 직렬화 개념을 사용합니다. 객체 직렬화는 객체의 상태를 바이트 스트림으로 변환하는데 사용되는 프로세스로, 디스크 / 파일로 유지되거나 네트워크 통신을 통해 실행중인 다른 Java 가상머신으로 전송될 수 있습니다. 역직렬화란 이러한 바이트 스트림을 다시 객체형태로 변환하는 작업을 말합니다. 생성된 바이트는 플랫폼에 독립적입니다. 그래서 한 플랫폼에서 직..
안녕하세요. 이전 포스팅에서 커스텀 어노테이션으로 Bean Validation 처리를 해보는 예제를 작성하여 포스팅하였습니다. https://sas-study.tistory.com/343 스프링 Custom Bean Validation 만들어서 사용해보기(어노테이션 @Email) 스프링 Bean Validation 이란?? 스프링에서는 JavaBean(getter와 setter를 가지고 있는 자바객체, 흔히 VO, DTO라고 부르는 것들)의 유효성 작업을 진행하기 위해 javax.validation 패키지 내에 있는 여러가지 유.. sas-study.tistory.com 그 와중에 response body에 에러메시지를 담는 과정에서 Errors 객체를 사용하여 DefaultMessage로 설정한 내용을..
스프링 Bean Validation 이란?? 스프링에서는 JavaBean(getter와 setter를 가지고 있는 자바객체, 흔히 VO, DTO라고 부르는 것들)의 유효성 작업을 진행하기 위해 javax.validation 패키지 내에 있는 여러가지 유효성 관련 클래스들을 활용할 수 있습니다. * 참고로 스프링 부트 2.3 버전 이후부터는 Spring Web 유효성에서 Validation 의존성이 따로 분리되어 별도로 Validation 의존성을 추가해야 javax.validation 패키지를 활용하여 여러가지 유효성 검사를 어노테이션을 통해 활용할 수 있습니다. 대표적으로 오늘 살펴볼 ConstraintValidator 인터페이스를 구현하여 아래와 같이 Email의 유효성 검사를 할 수 있는 Email..
스킬트리 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트→ 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 제한 ..
문제 설명 클래스 TreeNode가 다음과 같이 있을때 class TreeNode { int val; TreeNode left, right; public TreeNode(int x) { this.val = x; } } 다음과 같은 트리노드를 구현한 매개변수로 TreeNode 인스턴스를 받고 다음의 배열로 표현되도록 하시오. 결과 : [[33], [22, 44], [3, 26, 77], [55]] 나의 풀이 public List solution(TreeNode root) { List result = new ArrayList(); if(root == null) return result; Queue queue = new LinkedList(); queue.offer(root); while(!queue.isEm..