전체 글 75

JAVA 정규식

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 위 문제를 통해 자바 정규식을 정리해보겠습니다. new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 위 문제의 2단계입니다. 정규식을 통해 문자열을 바꿀 수 있는 replaceAll()을 이용하여 보겠습니다. new_id = new_id.replaceAll("[^a-z0-9-_.]", ""); [..

배포환경 구축(1) : 전체 설명

위 그림이 제가 생각하는 프로젝트의 배포 환경입니다. 먼저 프로젝트에는 AWS EC2 Server가 제공되어 있습니다. NGINX Nginx는 EC2 Server의 80포트를 이용하고 /로 들어오는 주소는 Front로 /api로 들어오는 주소는 Back으로 연결하겠습니다. Jenkins Jenkins는 도커에 구축하고 GitLab과 연결하여 GitLab의 develop branch에 merge request가 승인되면 자동으로 Jenkins에 빌드하고 빌드된 파일을 scp 명령어를 통하여 EC2 Server로 배포하게 됩니다.

세그먼트 트리(Segment Tree)

개념 세그먼트 트리는 간격에 대한 정보를 저장하는 자료구조입니다. 이를 이용하면 구간 합, 구간 최댓값/최솟값 들을 빠르게 구할 수 있습니다. 보통 구간 합을 구하는 방법은 해당 구간을 전부 탐색하면서 합을 구하는 방식입니다. 이 방법은 O(N)의 시간이 걸립니다. 하지만 세그먼트 트리의 경우 구간을 탐색하는데 O(lgN)의 시간밖에 걸리지 않습니다. 해당 글은 구간의 최솟값들을 구하는 방법으로 설명하겠습니다. https://www.acmicpc.net/problem/14438 14438번: 수열과 쿼리 17 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. 1 i v : Ai를 v로 바꾼다. (1 ≤ i ≤ N, 1 ≤ v ≤ 109) 2 i..

Spring Data JPA 사용법

Spring Data JPA 사용 방식 https://velog.io/@devyu/spring-Spring-Data-JPA-%EA%B8%B0%EB%B3%B8%EC%A0%95%EB%A6%AC [spring] Spring Data JPA 기본정리 JpaRepository 인터페이스는 공통 CRUD를 제공하며 제네릭은 으로 설정한다.Spring Data JPA가 스스로 인터페이스에 대한 Proxy 객체(구현 클래스)를 생성하여 MemberRepository 를 velog.io Query Method Table 8 - 11 https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#appendix.query.method.subject Spring D..

Backend/Spring 2021.07.18

Spring Data JPA 기본

ORM(Obect Relational Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것 Ex) JPA, Hibernate 장점 객체 지향적인 코드로 비즈니스 로직에 더 집중 재사용 및 유지보수 DBMS에 대한 종속성이 줄어든다. 단점 ORM으로만 서비스를 구현하기 어렵다. JPA, Hibernate, Spring data JPA 차이 JPA: 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스, 구현이 없다. Hibernate: JPA라는 명세의 구현체 Spring Data JPA: JPA를 쓰기 편하도록 만들어 놓은 모듈, JPA를 한 단계 추상화시킨 Repository라는 인터페이스를 제공함으로써 이루어진다. References https://suh..

Backend/Spring 2021.07.18

Union-Find

개념 서로 중복되지 않는 부분 집합들을 표현할 때 사용하는 알고리즘 해당 알고리즘에 필요한 연산은 부분 집합들을 서로 묶는 연산(Union), 해당 원소가 어느 집합에 속해있는지 찾는 연산(Find)이 있습니다. 부분 집합들을 표현하는 방법 배열 해당 원소가 몇 번째 집합에 속해 있는지 각각의 원소마다 표시합니다. 1번째 부분 집합 : {0, 1, 2} 0 -> 1, 1 -> 1, 2 -> 1 Union 연산: 모든 원소에 대해서 몇 번째 집합에 속해 있는지에 대한 수정이 일어납니다.( O(N) ) Find 연산: 해당 원소가 몇 번째 집합에 속해있는지 바로 찾을 수 있습니다.( O(1) ) 트리 부분집합마다 트리를 생성하여 각 원소가 부모 원소를 표시하고 있습니다(루트 원소는 자기 자신을 표시) 1번째..

MariaDB 설치

docker run --name maria-db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=원하는 비밀번호 -d mariadb docker exec -it maria-db mysql -u root -p 명령 프롬프트에서 위 명령어를 통해 mariadb를 설치하고 실행합니다. cli를 통해 database 변경 docker에서 위 버튼을 통해 CLI 창을 엽니다. mysql -u root -p 그리고 위 명령어를 통해 실행시킵니다. show databases; 위 명령어를 이용하면 mariadb의 모든 database가 나옵니다. use ssafy_sk;; show tables; 위 두 명령어를 이용해 ssafy_sk database에 접속하고 존재하는 table을 보여줍니다.

Docker 2021.07.12