[SpringBoot + Nexacro] Nexacro 설치 및 프로젝트 생성과 연동
·
SpringBoot
Nexacro 공부를 위해 SpringBoot + Oracle + Nexacro 토이 프로젝트를 진행하기로 함재고 및 물품 관리 시스템으로, 현재 재고 상태를 보여주는 대시보드를 제작할 예정 기술 스택FrontendNexacro NBackendSpringBoot 3.2.5 + MyBatisDBOracle XE 21c (Docker)빌드Gradle ❗JPA가 아닌 MyBatis를 선택한 이유MyBatis는 직접 SQL문을 작성할 수 있고, DBMS별 문법을 세밀하게 제어할 수 있음또한 Oracle과의 궁합도 좋기 때문에 Oracle 공부도 더 할겸 MyBatis를 선택함 💡 Nexacro 핵심 개념Form화면 하나 = Form 하나React의 Page 컴포넌트와 비슷한 개념 Dataset화면에서 데이터를..
[SpringBoot] Flyway로 DB 마이그레이션 및 DDL 작성
·
SpringBoot
SpringBoot와 Oracle, MyBatis를 이용하여 재고/물품 관리 시스템을 개발하던 중, DDL 스크립트를 저장하고 관리할 필요성을 느끼게 되었다특히 MyBatis는 SQL 실행 도구로 스키마를 자동 생성해주지 않기 때문에, 테이블 생성 시 DDL 스크립트를 필수로 작성해야 함 --> Flyway가 필수적❗JPA 사용 시에도 Flyway를 사용한다JPA 사용 시 Hibernate가 테이블 생성 및 수정을 자동으로 해주기 때문에 Flyway가 필요 없다고 생각할 수 있으나, Flyway 없이 `ddl-auto` 기능만을 사용하면 테이블 변경 시 누가 언제 어떤 컬럼을 추가했는지 추적 불가함따라서 실수를 방지하고 sql 버전 관리를 위해 JPA + Flyway 조합도 많이 사용함 📌 Flyway..
[SpringBoot] Swagger를 이용한 API 문서 자동화
·
SpringBoot
SwaggerREST API를 문서화하고 테스트할 수 있게 해주는 도구/명세 API 개발 시 프론트엔드 개발자나 외부 팀에게 아래 정보를 전달해야 함요청 URLHTTP 메서드 (GET, POST 등)요청 파라미터/바디응답 형태위 내용을 수동 작성하면 코드가 바뀔 때마다 문서도 일일이 따로 수정해야 함Swagger는 이 과정을 코드에서 자동으로 생성, Controller에 작성된 내용이 Swagger UI에 자동으로 API 표시됨 Swagger UI 제공브라우저에서 시각적으로 API를 확인할 수 있는 인터랙티브 문서 페이지를 제공함http://localhost:8080/swagger-ui.html 모든 API 엔드포인트 목록 확인요청/응답 스펙 확인직접 API 호출 테스트 가능 (Postman 필요 X) ..
[AWS] SpringBoot + AWS EC2 Ubuntu 서버 생성 및 배포
·
SpringBoot
📌AWS 준비🟨인스턴스 설정1. AWS 로그인 후 우측 상단의 AWS Region에서 지역 설정본인이 현재 위치한 지역으로 설정‼️ 인스턴스 생성 후엔 지역 바꿀 수 없으므로 반드시 미리 지역 설정 후 인스턴스 생성할 것 2. EC2 서비스로 이동 후 '인스턴스 시작' 클릭 3. 인스턴스명 작성 후 AMI(Amazon Machine Image) 설정이름은 자유 입력AMI는 Ubuntu 서버를 사용할 것이므로 Ubuntu 선택 4. 키 페어 설정💡 키 페어AWS EC2 인스턴스에 연결하기 위한 암호화 파일우측의 '새 키 페어 생성' 버튼 클릭키 페어 이름은 알아볼 수 있는 선에서 자유롭게 작성유형 및 파일 형식은 기본 설정 사용 5. 나머지 값은 기본값으로 설정 후 우측의 '인스턴스 시작' 버튼 클릭..
[AWS] RDS DB 인스턴스 생성(PostgreSQL) 및 SpringBoot 연동
·
SpringBoot
📌RDS 생성1. AWS에서 RDS 검색 후 해당 서비스로 이동 (Aurora and RDS) 2. 데이터베이스 메뉴로 이동 후 우측 상단의 '데이터베이스 생성 - 전체 구성' 버튼 클릭 3. 데이터베이스 설정엔진 옵션은 PostgreSQL로 설정템플릿은 프리티어로 설정 DB 인스턴스 이름 설정 후 자격 증명 설정마스터 사용자 이름은 자유롭게 작성자격 증명 관리는 자체 관리 설정 후 비밀번호 입력 스토리지는 기본값 그대로 설정스토리지 자동 조정 활성화 란은 체크 해제해야 과금 위험 줄어들음 4. DB 생성 완료엔드포인트 확인데이터베이스 세부 정보 > 연결 및 보안 > 다음을 사용하여 연결: 엔드포인트 5. 연결 설정초기에 외부에서 데이터베이스에 접근 가능하도록 퍼블릭 액세스를 가능하게..
[SpringBoot] Spring Secutiry + JWT 기반 로그인 구현
·
SpringBoot
Spring Security와 JWT를 활용한 로그인 기능 구현 주요 기능1. 회원가입아이디(사용자명), 이메일, 비밀번호 검증중복 체크비밀번호 암호화 (BCrypt)JWT 토큰 자동 발급2. 로그인사용자 인증JWT 토큰 발급3. JWT 인증Authorization 헤더의 Bearer 토큰 검증자동 인증 처리 라이브러리 추가jjwt의 경우 보통 0.11.x 버전을 쓰는 것 같았는데, 공부 목적이니까 제일 최근 버전인 0.12.3을 쓰기로 함변경된 부분이 있으므로 코드 작성 시 주의 필요dependencies { // Spring Security implementation 'org.springframework.boot:spring-boot-starter-security' testImplem..
[스프링 부트] 어노테이션
·
SpringBoot
@Controller- 서블릿 역할- 빈에 자동 주입* 스프링의 컨테이너를 사용하려면 빈에 등록이 되어야 한다.(1) 등록 / (2) 어노테이션 등록@Controller 붙이면 서블릿 역할하는 클래스가 되며 빈에 등록 된다@RequestMapping(value="/문자열")- 웹 구조에서 클라이언트가 요청하는 주소 지정- value= 생략 가능@ResponseBody응답에 대해 지정응답 결과를 body 태그로 보냄아래 메소드의 리턴 값을 응답으로 삼음@NoArgsConstructor파라미터 없는 기본 생성자를 자동으로 만들어줌JPA Entity (Hibernate가 리플렉션으로 객체 생성)Jackson 역직렬화프레임워크에서 기본 생성자를 요구할 때JPA Entity에서는 거의 필수@AllArgsConst..