[BOJ] 17413: 단어 뒤집기2

문제문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다.먼저, 문자열 S는 아래와 같은 규칙을 지킨다.알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다.문자열의 시작과 끝은 공백이 아니다.''가 문자열에 있는 경우 번갈아가면서 등장하며, '태그는 ''로 끝나는 길이가 3 이상인 부분 문자열이고, '' 사이에는 알파벳 소문자와 공백만 있다. 단어는 알파벳 소문자와 숫자로 이루어진 부분 문자열이고, 연속하는 두 단어는 공백 하나로 구분한다. 태그는 단어가 아니며, 태그와 단어 사이에는 공백이 없다.  입력첫째 줄에 문자열 S가 주어진다. S의 길이는 100,000 이하이다.  출력첫째 줄에 문자열 S의 단어를 뒤집어서 출력한다.   풀이처..

problem-solving 2024.05.23 1

[DATABASE] 관계형 데이터베이스(Oracle)

관계형 데이터베이스란?관계형 데이터 모델 개념을 바탕으로 데이터를 저장 및 관리하는 데이터베이스를 의미한다. 이러한 관계형 데이터베이스를 관리하는 시스템은 RDBMS(relational Database Management System)이라고 부른다.MS-SQL, MySQL, MariaDB, PostgreSQL, DB2, Oracle 등 많은 DBMS 제품이 대부분 관계형 데이터베이스 관리 시스템이다.관계형 데이터 모델(Relational data model) : 데이터 간 관계에 초점을 둔 모델   관계형 데이터베이스 구성 요소 테이블관계형 데이터 베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리한다.이러한 표 형태의 데이터 저장 공간을 테이블(table)이라고 한다.가로줄을 행(row), 세..

DATABASE 2024.05.18 0

[BOJ] 1406: 에디터

문제한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다.이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다.이 편집기가 지원하는 명령어는 다음과 같다. L커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨)D커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시됨)B커서 왼쪽에 있는 문자를 삭제함 (커서가 문장의 맨 앞이면 무시됨)삭제로 인..

problem-solving 2024.05.14 0

[springboot] 실전! 스프링부트와 JPA 활용2 - API 개발과 성능 최적화 - 2. API 개발 고급: 준비, 지연 로딩과 조회 성능 최적화

API 개발 고급 - 준비 조회용 샘플 데이터 입력 API 개발 고급 설명을 위해 샘플 데이터를 입력하자. userA JPA1 BOOK JPA2 BOOK userB SPRING1 BOOK SPRING2 BOOK @Component @RequiredArgsConstructor public class InitDb { private final InitService initService; @PostConstruct public void init() { initService.dbInit1(); initService.dbInit2(); } @Component @Transactional @RequiredArgsConstructor static class InitService { private final EntityM..

springboot 2024.03.01 2

[springboot] 실전! 스프링부트와 JPA 활용2 - API 개발과 성능 최적화 - 1. 회원 API 개발

실전! 스프링부트와 JPA 활용1을 공부하고 블로그에 내용을 정리한 지.. 벌써 몇 개월이 후딱 지나가버렸다. 그 사이, 많은 일들이 있었지만 서둘러 두 번째 내용을 정리하고 "자바 ORM 표준 JPA 프로그래밍" 책을 읽으며 공부하고자 한다. 회원 등록 API "등록 CASE 1: 요청 값으로 Member Entity를 직접 받는다." ▶️ Request Body에 직접 매핑한다. 문제점) - Entity에 프로젠테이션 계층을 위한 로직이 추가된다. - Entity에 API 검증을 위한 로직이 들어간다. (@NotEmpty 등) - 실무에서는 회원 entity를 위한 API가 다양하게 만들어지는데, 한 entity에 각각의 API를 위한 모든 요청 요구사항을 담기는 어렵다. - Entity가 변경되면 ..

springboot 2024.02.28 0

[springboot] 실전! 스프링부트와 JPA 활용 1 - 5. 웹 계층 개발

지난번까지 주문 관련한 로직을 작성해 보았다. 이번에는 웹 계층에 대한 개발을 진행보고자 한다. 웹 계층 개발 홈 화면 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 (변경 감지와 병합) 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 홈 화면과 레이아웃 홈 컨트롤러 등록 @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home() { log.info("home controller"); return "home"; } } 스프링부트 타임리프 기본 설정 spring: thymeleaf: prefix: classpath:/templates/ suffix: .html spring.t..

springboot 2023.11.21 1

[WebSocket] WebSocket을 활용한 실시간 요청 및 응답 구현

프로젝트를 진행하던 중, 사용자에게 실시간으로 진행상황을 보여주고 싶었다. '어떻게 구현을 할 수 있을까?' 생각을 하다가 실시간 채팅 구현에 많이 사용한다는 WebSocket을 이용해 보기로 했다. 현재 개발 프로세스는 크게 다음과 같다. 모델 서버에서 AI 모델이 돌아가고 있다. 사용자의 요청을 받은 AI 모델이 무엇인가를 만들어낼 때마다 '나 이만큼 만들었어!' 하고 web 서버한테 현재 진행상황에 대한 내용을 보낸다. web 서버는 그 내용을 받아 사용자에게 return 해준다. 우선 모델 서버에 직접 개발하기 전, WebSocket에 대해 처음 인지했기 때문에 다른 환경에서 한 번의 연결로 계속 통신이 되는지를 테스트해보고자 한다. 그전에, WebSocket에 대해 잠깐 알아가는 시간을 가져보자..

학습 2023.11.16 2

[springboot] 실전! 스프링부트와 JPA 활용 - 4. 주문 도메인(Order)

상품 도메인 개발에 이어 이번에는 주문 도메인을 구현하려고 한다. 주문 도메인 개발은 내용이 많으니 차근차근 정리를 해보자! 주문 도메인 개발 구현 기능 상품 주문 주문 내역 조회 주문 취소 순서 주문 엔티티, 주문상품 엔티티 개발 주문 Repository 개발 주문 서비스 개발 주문 검색 기능 개발 주문 기능 테스트 주문, 주문상품 엔티티 개발 주문 엔티티 개발 주문 엔티티 코드 @Entity @Table(name = "orders") @Getter @Setter public class Order { // 주문 엔티티 @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @Join..

springboot 2023.11.14 0

[springboot] 실전! 스프링부트와 JPA 활용 - 3. 상품 도메인(Item)

저번에 이어 이번에는 상품 도메인 개발을 해볼 예정이다. 상품 도메인 개발 구현 기능 상품 등록 상품 목록 조회 상품 수정 순서 상품 엔티티 개발(비즈니스 로직 추가) 상품 리포지토리 개발 상품 서비스 개발 상품 기능 테스트 상품 엔티티 개발(비즈니스 로직 추가) 상품 엔티티 코드 상품의 수량을 추가하고 빼는 로직을 추가했다. @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "dtype") @Getter @Setter public class Item { // 상품 엔티티 @Id @GeneratedValue @Column(name = "item_id") private Long id; privat..

springboot 2023.11.14 0

[springboot] 실전! 스프링 부트와 JPA 활용 - 2. 회원 도메인(Member)

저번 Entity 생성에 이어 회원 관련 로직을 생성해 보자. 예제를 단순화하기 위해 다음 기능은 구현하지 않는다. 로그인과 권한 관리 사용 X 파라미터 검증과 예외처리 사용 X 상품은 도서만 사용 카테고리 사용 X 배송 정보는 사용 X 애플리케이션 아키텍처 계층형 구조 사용 controller, web : 웹 계층 service : 비즈니스 로직, 트랜잭션 처리 repository : JPA를 직접 사용하는 계층, 엔티티 매니저 사용 domain : 엔티티가 모여 있는 계층, 모든 계층에서 사용 개발 순서 : service, repository 계층을 개발하고, 테스트 케이스를 작성해서 검증, 마지막에 웹 계층에 적용 회원 도메인 개발 구현 기능 회원 등록 회원 목록 조회 순서 회원 repository..

springboot 2023.11.13 2
반응형