도메인 모델과 리포지터리를 구현할 때 자주 사용하는 기술 중 하나는 JPA이다. JPA는 자바의 ORM 표준이다. 리포지터리 인터페이스는 애그리거트와 같이 도메인 영역에 속하고 리포지터리를 구현한 클래스는 인프라스트럭처 영역에 속한다. 가능하면 리포지터리 구현 클래스를 인프라스트럭처 영역에 위치하여 인프라스트럭처에 대한 의존을 낮춰야 한다. public class ChangeOrderService { @Transactional public void changeShippingInfo(OrderNo no, Shippinginfo newShippinglnfo) { Optional orderOpt = orderRepository.findById(no); Order order = orderOpt.orElseThr..
문제: 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오. public static void main(String[] args) { problem11 answer = new problem11(); Scanner sc = new Scanner(System.in); String word = sc.nextLine(); System.out.println(answer.solution(word)); } public String solution(String word) { String answer = ""; word = word + " " ; int count = 1; for(int i=0; i..
문제: 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. public int solution(String s) { String answer = ""; for(char x : s.toCharArray()) { if(Character.isDigit(x)) answer +=x; // Character.isDigt(x) 숫자인지 아닌지 확인해주는 메소드 } return Integer.parseInt(answer); } public static void main(String[] args) { problem9 prob = new problem9(); Scanner sc = new Scanner(System.in); String str = sc.next(); System..
문제: 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열인지 확인하세요. 같은 무자열이면 YES 아니면 NO를 출력하세요. 예제) sooS -> YES dooE -> NO public static void main(String[] args) { problem7 prob = new problem7(); Scanner sc = new Scanner(System.in); String word = sc.nextLine(); if(prob.solution(word).equals(word.toLowerCase())) { // 다 소문자로 바꾼후 앞에 단어랑 맞는지 안 맞는지 조건문 System.out.println("YES"); }else { System.out.println("NO"); } } public Stri..
문제:영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요. 예제) a#b!GE*T@S -> S#T!EG*b@a public static void main(String[] args) { problem5 prob = new problem5(); Scanner sc = new Scanner(System.in); String word = sc.nextLine(); System.out.println(prob.solution(word)); } public String solution(String word) { String answer = ""; char[] arr = word.toCharArray(); int l..