전체 글
-
백준 2343번 : 기타 레슨알고리즘, SQL/알고리즘 2024. 9. 25. 22:56
https://www.acmicpc.net/problem/2343이분탐색이 코테문제로 많이 나오는거 같은데 이분탐색 문제가 익숙하지 못하다. 그래서 이분탐색 문제를 집중적으로 풀어보는데, 해당문제가 생각할 거리가 많아서 기록을 해두기로 했다. 문제강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경우에는 강의의 흐름이 끊겨, 학생들이 대혼란에 빠질 수 있기 때문이다. 즉, i번 강의와 j번 강의를 같은 블루레이에 녹화하려면 i와 j 사이의 모든 강의도 같은 블루레이에 녹화해야 한다.강토는 이 블루레이가 얼마나 팔릴지 아직 알 수 없기 때문에, 블루레이의 개수를 가급적 줄이..
-
백준 11404번 : 플로이드알고리즘, SQL/알고리즘 2024. 8. 15. 17:58
플로이드워셜 알고리즘을 공부하기 위해 해당 알고리즘의 기본 문제를 풀어봤다.https://www.acmicpc.net/problem/11404문제n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다.모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오.출력첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b..
-
인프런 워밍업 클럽/ BE 7일차 과제 : JPA 마이그레이션인프런 워밍업 클럽 2024. 5. 16. 22:19
7일차 과제문제 1Fruit 도메인JPA를 사용하기 위해 Fruit도메인을 만들어서 Entity로 만들었다.@Entitypublic class Fruit { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id private long id; @Column(nullable = false) private String name; @Column(nullable = false, name = "warehousing_date") private LocalDate warehousingDate; @Column(nullable = false) private long price; @Column(nullable = false) ..
-
TIL 자바 스프링부트 서버개발 올인원 : 43-46강Java 2024. 5. 15. 16:25
이전 강의에서 AWS EC2서버를 빌리는 것 까지 했다.이번 강의에서는 빌린 EC2서버에 접속하는 것이다. 우선 EC2서버에 접속하는 방법으로는 2가지가 있다. 1. 다운로드 받은 키 페어(PEM키)를 이용하는 방법2. AWS콘솔을 활용해서 접속하는 방법 1. 다운로드 받은 키 페어(PEM키)를 이용하는 방법준비물- 접속하려는 EC2의 IP주소(퍼블릭 IP주소)- 서버를 열면서 다운로드 받았던 키 페어- 접속하기 위한 프로그램(git CLI) 우선 다운로드 받았던 키 페어의 권한이 열려있는 상태이기 때문에 권한을 닫아주는 작업부터 해야한다.git CLI에서 chmod 400 [다운로드 받은 키페어 파일주소(보통 드래그해서 가져옴)]보안처리를 해야만 에러가 발생하지 않음보안처리를 하지 않으면 위와같은 ..
-
TIL 자바 스프링부트 서버개발 올인원 : 38강Java 2024. 5. 14. 00:01
Profile현재 도서관리 어플리케이션은 로컬에서만 실행이 되도록 하고있다. 때문에 DB도 로컬에 있는 MySql과 연결이 되어있다. 그렇다면 AWS로 배포 할 때는 어떻게 아마존에서 빌린 컴퓨터의 DB를 사용할 수 있을까?Profile이라는 개념은 여기에 적용이 되는 부분이다. 로컬 컴퓨터에서 돌렸을 때의 설정과 외부 서버에서 돌렸을 때의 설정을 다르게 해준다는 것이다.(비단 DB뿐만 아니라, 다양한 종류의 설정을 할 수 있다.)(이미 로컬서버를 실행시킬 때 Profile 설정을 체크하고 있었다.) 연습을 위해 위의 사진과 같이 Profile설정을 다르게 해서 local일 경우, H2 DB를 사용하도록 하고 dev일 경우 MySql DB를 사용하도록 해보자H2 DB경량 DB로 개발 단계에서 많이 사용하..
-
인프런 워밍업 클럽/ BE 6일차 과제 : 스프링 컨테이너의 사용인프런 워밍업 클럽 2024. 5. 13. 01:18
6일차 과제기존의 코드를 보면 Controller에서 다 처리해주고 있었다. Controller의 역할인 주소를 연결해주고 요청을 받고 데이터를 내려주고하는 역할을 넘어 비즈니스 로직을 처리하고 DB와 연결까지 하고 있는 것이다. 컨트롤러의 역할과 책임에 맞게 수정을 하게 되면서 컨트롤러는 정확히 요청에서 오는 데이터를 받아주고 요청에 맞는 응답 데이터를 내려주는 역할만 하도록 바꿔줘야한다.FruitControllerpackage com.group.libraryapp.controller.fruit;import com.group.libraryapp.dto.homework.request.FruitRequestDTO;import com.group.libraryapp.dto.homework.request.Fr..
-
TIL 자바 스프링부트 서버개발 올인원 : 35강Java 2024. 5. 11. 00:01
아래와 같은 형식으로 리팩토링 하기 위해서 OneToMany / ManyToOne / 연관관계의 주인을 알아봤다. User도메인과 UserLoanHistory도메인이 직접적으로 연결되도록 리팩토링 해보자 우선 User도메인에 userLoanHistorties에 cascade옵션과 orphanRemoval옵션을 설정해주고@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)List userLoanHistories = new ArrayList(); loanBook메서드를 만들어서 해당 메서드에서 userLoanHistories에 리스트를 추가할 수 있도록 해준다.public void loanBook(String bookNa..
-
TIL 자바 스프링부트 서버개발 올인원 : 33-34강Java 2024. 5. 10. 00:01
@ManyToOne / @OneToMany이제까지의 대출기능은 절차지향적으로 진행이 되고 있었다.1. Request로 들어오는 bookName을 통해 Book이 있는지 확인2. 있으면, UserLoanHistoryRepository에서 빌릴 수 있는지 확인3. 빌릴 수 있다면, User가 있는지 확인4. 유저가 있다면, UserLoanHistory객체로 만들어서 저장 이 경우 User와 UserLoanHistory는 밀접한 연관이 있기 때문에 두 객체를 협업하게 할 수 있다.요런식으로 생략할 수 있게 된다. 단 선행 조건으로 User와 UserLoanHistory가 서로 알아야한다.@Entitypublic class UserLoanHistory { @Id @GeneratedValue(strat..