본문 바로가기

전체 글92

[리팩토링] 코드 리팩토링이란 ? 서론 과거에는 기능구현이 더욱 중요했지만, 현재는 코드 가독성의 중요성이 점점 더 부각되고 있다. 과거 프로젝트를 리팩토링하며 리팩토링에 대한 개념을 정리하고자 한다. 리팩토링이란 ? ? 리팩토링이란 코드의 구조와 디자인을 개선하는 작업이다. 기능에는 영향을 주지 않으면서 가독성을 높이고 유지보수를 용이하게 만드는 것이다. 즉, 코드의 품질을 향상시키고 버그를 줄이며, 향후 개발과 유지보수를 보다 효율적으로 할 수 있다. 리팩토링 과정 1. 코드의 이해 -> 코드의 기능, 구조, 의존성 등을 판단하여 어느 부분을 개선해야 할지 판단해야 한다. 2. 테스트 작성 -> 리팩토링 전,후 에 테스트 결과가 변함이 없어야 한다. 3. 작은 단위로 분리 -> 큰 변경사항을 한번에 적용하지 않고, 쪼개서 적용하며 테.. 2023. 7. 22.
AWS RDS 생성 및 접속 AWS RDS 생성 AWS RDS 서비스에 접속해서 DB를 생성해보자 RDS 탭 - 대시보드 DB 종류 및 버전 선택 표준 생성 선택 - Mysql 선택(사용하는 DB 선택) - 버전 선택 먼저 아래와 같이 내 PC의 Mysql이 어떤 버전인지 확인하고 근접한 버전을 선택한다. 프리티어를 사용중이면 꼭 선택해야 한다 ! DB 정보 생성 DB 인스턴스 식별자 : AWS에서 DB를 구분할 수 있는 고유 이름 마스터 사용자 이름 : DB의 root 권한을 가진 ID 마스터 암호 : 해당 ID의 비밀번호 인스턴스 구성 기본값 그대로 쓰면 된다. 어차피 프리티어라 몇개 못쓴다.... 좀 더 성능 좋은걸 쓰고싶다면 db.t4g.micro 선택 스토리지 설정 이것도 기본값 그대로 쓰면된다. 어차피 20G를 가득 채.. 2023. 7. 16.
AWS 인스턴스 생성 후 SSH로 접속하기 인스턴스 생성 먼저 로그인 후 가상 머신 시작 버튼을 클릭해줍니다. 못 찾으시는 분들을 위해 링크 첨부합니다. (인스턴스 생성 페이지 바로가기) 그 후 적절한 이름 입력 후 아래와 같이 선택해 줍니다. 저는 Amozon Linux의 2023 AMI를 사용해보겠습니다. 인스턴스 유형 그 후 인스턴스 유형을 t2.micro를 선택해 줍니다. 그 외 인스턴스 선택 시 요금이 발생할 수 있습니다. 키 페어 생성 키 페어는 EC2 인스턴스에 원격으로 접속할 때 필수적으로 필요하므로 생성해줘야 합니다. 또한, 키 페어는 한번 생성하면 두번다시 다운로드 받을 수 없기 때문에 주의해서 보관해야 합니다. 키페어 이름을 설정해준 뒤 키 페어 생성을 눌러 생성된 키 페어를 다운받아 주도록 합시다. 네트워크 설정 방화벽(보.. 2023. 7. 15.
게시판 crud 작업 Entity 모든 테이블을 생성하지 않고 우선 게시판 CRUD를 위해 Board 테이블만 생성하겠다. @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter @AllArgsConstructor @Builder @Entity @Table(name = "board") public class Board extends BaseTime { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "board_id") private Long id; @Column(nullable = false) private String title; @Lob @Column(nullable = false) priva.. 2023. 7. 10.
Jasypt를 사용하여 properties(yml) 주요 정보 암호화 Jasypt 먼저 yml 파일은 양방향 암호화가 가능해야 한다. 그 중 많이 사용하는 라이브러리인 Jasypt(Java Simplified Encryption) 를 적용해보자. 왜 ? 왜 암호화를 해야하는지 의문이 들 수 있을 것 같다. 클라우드 환경에서 RDS를 사용하고 있고 해당 정보를 yml 파일로 관리하고 있다고 가정해보자. 이 경우, 형상 관리 시에 항상 .gitignore로 설정하여 커밋하지 않거나 private 프로젝트로 진행한다면 문제가 없을 수도 있다. 하지만 public 프로젝트와 더불어 내 yml 파일을 커밋했다면 ? 나의 RDS 정보가 그대로 노출 될 수 있는 심각한 문제가 발생할 수 있다. 따라서 우리는 암호화를 진행해야 한다. dependency 추가 implementation .. 2023. 7. 9.
프로젝트 설계 1. 프로젝트 목적 * 내가 경험한 기술적인 지식과 경험을 공유하기 위한 블로그 플랫폼 제작 * 포트폴리오 제작 2. 기술 스택 * Back-End : Java11, Spring Boot, Spring Security, JPA, QueryDsl * Front-End : HTML, CSS, JS, Bootstrap, Thymeleaf * DB : Mysql * 형상관리 : Git * Devops : AWS, Jenkins(CI/CD) 3. 주요 기능 * 사용자 인증 : 회원가입, 로그인, 로그아웃 기능을 구현하여 사용자 인증 처리 * 게시물 관리 : 게시물 CRUD 기능 및 페이징 처리 * 댓글 관리 : 댓글 CRUD 기능 * 검색 기능 : 제목, 내용, 작성자 등을 기준으로 게시물 검색 4. DB 설계 .. 2023. 7. 9.