본문 바로가기

백엔드

(9)
[SpringBoot / IntelliJ] 인텔리제이 스프링부트 실행 시 sql문 실행 인텔리제이 스프링부트 실행 시 sql문 실행 프로젝트 실행과 동시에 h2 데이터베이스에 테이블이 하나 생성되도록 하는 방법이다. (다른 db도 가능)  1. src-main-resource 파일 아래에 data.sql 파일을 생성하고, 실행하고 싶은 sql 문을 입력한다. 2. application.properties에 아래 구문을 추가한다.spring.sql.init-mode=always 프로젝트를 실행하면 sql 문에 작성한 코드가 동작한다.
[IntelliJ/GitHub] 인텔리제이 깃허브 연동하는 방법, 인텔리제이 코드 깃허브에 올리기 인텔리제이 깃허브 연동하는 방법인텔리제이에 작성한 프로젝트를 깃허브와 연동하기 위해서는 우선 깃허브 레포지토리를 하나 생성해야한다.이후 인텔리제이에 해당 레포지토리를 연결하면 된다. 1. 깃허브 레포지토리 만들기깃허브 우측 상단 프로필을 클릭한다. Your repositories 를 클릭한다. New 를 클릭하여 새로운 레포지토리를 생성한다. 레포지토리 이름을 작성하고 생성 버튼을 누른다. 생성 완료. 2. 인텔리제이와 레포지토리 연동하기리포지토리를 생성하면 아래와 같은 화면으로 이동한다. 여기서 위의 명령어를 복사한다. 복사한 명령어를 인텔리제이 내의 터미널에 붙여넣기 하고 실행한다. 연동 완료. 인텔리제이 코드를 깃허브로 올리는 방법인텔리제이 터미널에서 아래 코드를 순서대로 작성하면 된다.git ad..
[공유 가계부/Spring] 카테고리 상세 조회 시 id 값 프론트에게 전달 카테고리 상세 조회 시 uri는 /ledger/{ledgerId}/category/{categoryId} 이다. (@Pathvariable)상세 조회는 목록 조회에서 클릭하면 넘어가는 형태이다. 카테고리를 상세 조회 하기 위해서는 categoryId를 알고 있어야 한다. 따라서 카테고리 목록 조회할 때 카테고리 id값을 함께 넘겨주어 프론트에서 path에 넣어 활용할 수 있게 해야한다. 처음에는 프론트에 나오는 정보는 사용자에게 필요한 정보만 줘야한다고 생각해서 카테고리 목록 조회 시 카테고리 이름과 종류(수입/지출)만 dto에 담아 응답했다. 그런데 회의 중 프론트에서 카테고리를 클릭하여 상세 조회할 때 path에 id 값을 담아서 조회해야하는데 id 값을 몰라서 못하고 있다고 했다. 당연한 말이었다...
[Spring Boot] 계층 카테고리 Entity CategoryEntity@Getter@Setter@Entity@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Category { @Id @Column(name = "id", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String type; @ManyToOne (fetch = FetchType.LAZY) @JoinColumn(name="ledgerId") private Ledger ledger; @ManyToOne(fetch ..
[IntelliJ] git 프로젝트 가져오기 인텔리제이에서 git 프로젝트 가져오기1. File - New - Project from Version Control 에 들어간다. 2. git repository 주소를 URL에 작성한다. Directory 경로는 빈 폴더만 가능하다. 3. Clone 버튼을 누르면 깃 프로젝트를 로컬에 가져올 수 있다.* 작성했는데 Clone 버튼이 활성화되지 않는 경우: 깃이 설치되지 않았다면 아래에 git 설치하기 링크가 뜬다. 이를 클릭하면 Clone 버튼이 활성화된다.
[AWS] 1년 무료 프리티어 계정에 요금 청구됨 지난 달 AWS 계정을 생성하고 1년동안 특정 서비스를 무료로 이용할 수 있게 됐다. 그런데 오늘 새벽 AWS에서 요금 청구가 발생했다는 결제 알림과 이메일이 왔다. 금액은 원화로 7천원 정도 되는 적은 금액이었지만 분명 가입할 때 크게 사용하지 않는 이상 요금이 발생하지 않다고 들어서 당황스러웠다. 자기 계정(화면 젤 위 우측) - 결제 및 비용 관리 - 청구 및 결제 - 청구서 항목에서 확인할 수 있다. 청구서에서 요금이 발생한 항목은 총 2가지다. Route 53과 IPv4 Addresses. 우선 Amazon Route 53 HostedZone - $0.50 per Hosted Zone for the first 25 Hosted Zones는 이전에 프론트엔드 서버(netflify)와 연결을 위해 ..
[DB 설계] PK에 더 적합한 자료형은 varchar? bigint? PK(Primary Key)는 bigint 타입으로 설정하는 게 좋다. 회원 db를 설계할 때 email이나 사용자가 설정하는 id를 pk로 사용할까 했는데(varchar 타입), ERDCloud에서 db설계한 자료를 참고하니 대부분 pk를 bigint 자료형으로 써서 왜 그런걸까 찾아봤다. pk는 변하지 않는 값을 써야한다.id나 email이 아무리 변하지 않고 중복되지 않는 값이라 하더라도, 혹시 모를 상황에 이를 변경할 경우가 발생하기 때문에 pk로 잘 쓰지 않는다.join 시 연산속도가 더 빠르다.pk는 다른 테이블에 fk로 활용되는 경우가 많은데, 이때 varchar보다 bigint가 저장공간을 덜 차지한다.join 연산이 좋으면 인덱스 성능도 더 좋다. 대표적으로 위 두가지 이유가 있었다.처음..
[AWS] spring boot 연결 - 오류 "Port 8080 was already in use" EC2로 서버를 구축하면서 스프링 프로젝트를 연결했는데, 처음 연결할 때는 수월하게 진행이 됐으나 코드를 변경하고 재배포하면 변경 내용이 적용되지 않는 경우가 발생했다.nohup.out 파일을 확인해보니 "Port 8080 was already in use" 오류가 있었다. 구글링을 통해 찾아보니 8080 포트가 종료되지 않고 계속 열려있어서 새로운 걸로 덮어씌워지지 않는 것 같았는데 왜 그런지는 잘 모르겠다. 수동으로 8080포트를 종료하고 다시 실행하는 방법으로 오류를 해결했다.리눅스에서 아래 명령어를 작성하면 젤 오른쪽에 [pid]/java 형태가 출력되는데, 여기서 pid를 확인할 수 있다.netstat -ano | grep 8080 찾은 pid를 kill 명령어를 통해 종료한다.kill -9 [..

반응형