본문 바로가기

분류 전체보기223

토비의 스프링 3.1 Vol.1 350p ~ 450p 정리 5.2 트랜잭션 서비스 추상화 - 테스트 실패의 원인 트랜젝션의 문제, upgradeLevels() 메서드가 하나의 트랜잭션 안에서 동작하지 않았기 때문이다. 5.2.2 트랜잭션 경계설정 트랜잭션 롤백 - 두 개의 SQL 작업 중 하나가 실패하면 앞에서 처리한 SQL 작업도 취소 시키는 것 - JDBC 트랜잭션의 트랜잭션 경계설정 트랜잭션의 경계 - 애플리케이션 내에서 트랜잭션이 시작되고 끝나는 위치를 트랜잭션의 경계라고 부른다. 로컬 트랜잭션 - 하나의 DB 커넥션 안에서 만들어지는 트랜잭션을 로컬 트랜잭션이라고 한다. - UserService와 UserDao의 트랜잭션 문제 왜 UserService의 upgradeLevels()에는 트랜잭션이 적용되지 않았을까? JdbcTemplate에서는 메소드 호.. 2023. 12. 31.
백준 19637번 IF문 좀 대신 써줘 c++ 풀이 문제 게임 개발자인 밀리는 전투력 시스템을 만들어, 캐릭터가 가진 전투력을 기준으로 칭호를 붙여주려고 한다. 예를 들어, 전투력 10,000 이하의 캐릭터는 WEAK, 10,000 초과 그리고 100,000 이하의 캐릭터는 NORMAL, 100,000 초과 그리고 1,000,000 이하의 캐릭터는 STRONG 칭호를 붙여준다고 하자. 이를 IF문으로 작성한다면 아래와 같이 구현할 수 있다. if power > m; for (int i = 0; i > type >> power; v.push_back({type, power}); } for (int i = 0; i > power; int.. 2023. 12. 31.
백준 1725번 히스토그램 c++ 풀이 문제 히스토그램에 대해서 알고 있는가? 히스토그램은 아래와 같은 막대그래프를 말한다. 각 칸의 간격은 일정하고, 높이는 어떤 정수로 주어진다. 위 그림의 경우 높이가 각각 2 1 4 5 1 3 3이다. 이러한 히스토그램의 내부에 가장 넓이가 큰 직사각형을 그리려고 한다. 아래 그림의 빗금 친 부분이 그 예이다. 이 직사각형의 밑변은 항상 히스토그램의 아랫변에 평행하게 그려져야 한다. 주어진 히스토그램에 대해, 가장 큰 직사각형의 넓이를 구하는 프로그램을 작성하시오. 입력 첫 행에는 N (1 ≤ N ≤ 100,000) 이 주어진다. N은 히스토그램의 가로 칸의 수이다. 다음 N 행에 걸쳐 각 칸의 높이가 왼쪽에서부터 차례대로 주어진다. 각 칸의 높이는 1,000,000,000보다 작거나 같은 자연수 또는 .. 2023. 12. 30.
토비의 스프링 3.1 Vol.1 250p ~ 350p 정리 3.5.3 템플릿/콜백의 응용 - 템플릿 / 콜백의 재설계 - 제네릭스를 이용한 콜백 인터페이스 제네릭스를 적용하여 다양한 오브젝트 타입을 지원하는 인터페이스나 메소드를 정의해 보자. //타입 파라미터를 적용한 LineCallback public inteface LineCallback { T doSomethingWithLine(String line, T value); } //타입 파라미터를 추가해서 제네릭 메소드로 만든 lineReadTemplate() public T lineReadTemplate(String filepath, LineCallback callback, T initVal) throws IOException { ... } 3.7 정리 - JDBC와 같은 예외가 발생할 가능성이 있으며 공유 .. 2023. 12. 30.
백준 17484번 진우의 달 여행 (Small) c++ 풀이 문제 우주비행이 꿈이였던 진우는 음식점 '매일매일싱싱'에서 열심히 일한 결과 달 여행에 필요한 자금을 모두 마련하였다! 지구와 우주사이는 N X M 행렬로 나타낼 수 있으며 각 원소의 값은 우주선이 그 공간을 지날 때 소모되는 연료의 양이다. [예시] 진우는 여행경비를 아끼기 위해 조금 특이한 우주선을 선택하였다. 진우가 선택한 우주선의 특징은 아래와 같다. 1. 지구 -> 달로 가는 경우 우주선이 움직일 수 있는 방향은 아래와 같다. 2. 우주선은 전에 움직인 방향으로 움직일 수 없다. 즉, 같은 방향으로 두번 연속으로 움직일 수 없다. 진우의 목표는 연료를 최대한 아끼며 지구의 어느위치에서든 출발하여 달의 어느위치든 착륙하는 것이다. 최대한 돈을 아끼고 살아서 달에 도착하고 싶은 진우를 위해 달에 도.. 2023. 12. 29.
백준 20920번 영단어 암기는 괴로워 c++ 풀이 문제 화은이는 이번 영어 시험에서 틀린 문제를 바탕으로 영어 단어 암기를 하려고 한다. 그 과정에서 효율적으로 영어 단어를 외우기 위해 영어 단어장을 만들려 하고 있다. 화은이가 만들고자 하는 단어장의 단어 순서는 다음과 같은 우선순위를 차례로 적용하여 만들어진다. 자주 나오는 단어일수록 앞에 배치한다. 해당 단어의 길이가 길수록 앞에 배치한다. 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다 M보다 짧은 길이의 단어의 경우 읽는 것만으로도 외울 수 있기 때문에 길이가 M이상인 단어들만 외운다고 한다. 화은이가 괴로운 영단어 암기를 효율적으로 할 수 있도록 단어장을 만들어 주자. 입력 첫째 줄에는 영어 지문에 나오는 단어의 개수 N과 외울 단어의 길이 기준이 되는 M이 공백으로 구분되어 주어진다... 2023. 12. 28.