전체 글

· Spring
오늘은 스프링부트에서 JSP를 사용하는법에 대해서 글을 작성하고자한다. 스프링부트에서는 이제 JSP를 사용하지않고 Thymeleaf를 공식적으로 지원하고있다. 하지만 국내에선 JSP를 사용하는 곳이 많고 나 또한 JSP를 사용해보고 경험을 해보고 싶었기에 방법을 찾고 적용해보았다. 우선 빌드는 Gradle을 기준으로 설명한다. 프로젝트를 생성하고 타입은 Gradle - Groovy를 선택후 패키지 생성은 Jar이 아닌 War을 사용하여 생성한다. 그리고 종속성은 Spring Web과 Lombok을 선택후 프로젝트를 생성한다. 생성후 Bulid.gradle로 들어가 dependencies 안에 4줄을 추가한다. implementation 'org.apache.tomcat.embed:tomcat-embed-..
오늘은 '스프링 부트3 백엔드 개발자 되기' 책에서 JUnit에 대해서 다시 배워보는 시간을 가졌다. JUnit: JUnit은 자바 언어를 위한 테스트 프레임워크로, 단위 테스트를 작성하고 실행하는 데에 사용된다. 자바 개발자들이 소프트웨어의 각 구성 요소들을 격리하여 테스트하고 검증하는 데에 유용한 도구이다. 단위 테스트 작성: JUnit을 사용하여 단위 테스트를 작성하는 방법에 대해 학습하였다. 테스트 대상이 되는 메서드를 테스트 케이스로 만들고, 입력값에 따른 예상 결과를 작성하여 테스트 코드를 구현한다. 각 테스트 케이스를 독립적으로 실행하여 코드의 정확성과 안정성을 검증한다. 어노테이션 활용: JUnit의 어노테이션(@Test, @BeforeEach, @AfterEach 등)을 활용하여 테스트 ..
· Infra
오늘은 AWS EC2를 생성하고 SpringBoot 프로젝트를 EC2 서버에 올려 실행 해보는 시간을 가져볼것이다. AWS에 접속하여 EC2에 들어간다. 그리고 인스턴스를 생성해보자. 이름은 Mydomain으로 지어보도록하겠다. 그리고 서버는 Amazon Linux2 AMI (HVM)를 사용할 것이다. 이 OS는 CentOS 기반이다. 인스턴스 유형은 m2.micro를 사용하자 우리는 프리티어를 사용할 것이다. 그리고 키페어를 생성해보자 키페어 이름은 mykeypair로 하고 유형은 rsa로 선택하자. 그리고 나는 mac 터미널환경에서 실행 할 것이기 때문에 pem으로 사용한다 나는 윈도우환경에서는 putty로 구동하기에 ppk를 사용하기도 한다. 하지만 mac에서는 터미널로 사용 할 수 있기에 pem으..
팀 프로젝트를 마무리하며, 내가 맡았던 프로필 조회, 수정, 비밀번호 수정 기능과 최근 3개의 비밀번호를 비교하여 조회되면 수정을 제한하는 기능을 개발하였다. 또한, 프론트엔드를 담당하여 사용자 인터페이스를 개발하였다. 프로필 조회, 수정, 비밀번호 수정 기능: 사용자의 프로필 정보를 조회하고, 필요한 경우 수정할 수 있도록 기능을 구현하였다. 사용자의 입력을 받아 서버에 요청을 보내고, 응답을 받아와 프로필 정보를 표시하거나 수정할 수 있도록 화면을 구성하였다. 비밀번호 수정 기능에서는 현재 비밀번호와 새 비밀번호를 비교하여 일치하면 변경을 허용하지 않도록 처리하는 로직을 추가하였다. 최근 3개 비밀번호 조회 및 비교 기능: 사용자의 최근 3개의 비밀번호를 데이터베이스에서 조회하여 비교하는 기능을 개발..
오늘은 부트스트랩을 사용하여 웹 애플리케이션의 스타일을 개선하고, 아이디 마스킹 처리를 통해 복호화한 후 클라이언트에 표시하는 작업을 수행하였다. 또한, 스크롤시 무한 게시물 생성되는 버그를 고치는 작업을 진행하였다. 부트스트랩으로 스타일 개선: 부트스트랩을 활용하여 웹 애플리케이션의 스타일을 개선하였다. 부트스트랩의 다양한 CSS 클래스와 컴포넌트를 사용하여 레이아웃을 조정하고, 버튼, 폼 요소, 테이블 등의 스타일을 쉽게 적용할 수 있었다. 이를 통해 일관된 UI 디자인과 더 나은 사용자 경험을 제공할 수 있게 되었다. 아이디 마스킹 처리: 데이터베이스에 저장된 아이디를 복호화하여 클라이언트에 표시하기 전에 마스킹 처리를 적용하였다. 사용자의 개인정보 보호와 보안성을 강화하기 위해, 중요한 정보를 가..
너의 선택은? 프로젝트를 진행하면서 Alert 사용이 많아지는걸 느껴진다. 그런데 브라우저의 기본 알림창은 보면 수수하게 느껴져 바꿔야 겠다는 생각이 들었다. 그래서 찾다 보니 SweetAlert라는 컴포넌트가 있다는걸 알게 되었다. SweetAlert의 공식 사이트이다. https://sweetalert2.github.io/ SweetAlert2 A beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxes sweetalert2.github.io 이곳에서 Alert 기능에 대해서 테스트 해볼 수 있으니 참고하면 좋을것이다. SweetAlert의 기본 코드는 이렇다 Swal.fir..
· Spring
오늘 프로젝트를 진행하면서 최근 비밀번호 3번을 기억한후 그 비밀번호로 바꾸려하면 변경이 불가능하게 만드는 메서드를 짜봤다. 우선 엔티티에 최근 비밀번호 3개를 담을 어레이리스트를 생성한다. @ElementCollection @CollectionTable(name = "previous_passwords", joinColumns = @JoinColumn(name = "users_id")) @Column(name = "password") private List previousPasswords = new ArrayList(); RDB에서는 컬렉션 형태의 엔티티는 저장할 수 없다. 그렇기에 별도의 테이블을 생성해줘야 한다는것을 알려줘야하는데 그것을 해주는 어노테이션이 @ElementCollection이다. 그리..
오늘은 새로운 팀 프로젝트인 백오피스 프로젝트를 시작하면서 여러 가지를 팀원들과 함께 진행하였다. API 작성: 프로젝트의 기능과 요구사항을 분석하고, 필요한 API 엔드포인트를 설계하였다. RESTful한 API를 구현하기 위해 URL과 HTTP 메서드를 정의하고, 각 API 엔드포인트에 대한 요청과 응답 형식을 정의하였다. API 작성을 통해 클라이언트와의 데이터 통신과 기능 구현에 필요한 기반이 마련되었다. ERD 작성: 프로젝트에서 사용할 데이터베이스의 테이블과 관계를 정의한 ERD(Entity-Relationship Diagram)를 작성하였다. 데이터베이스의 구조를 시각화하여 테이블 간의 관계와 속성들을 파악함으로써 데이터베이스 설계에 대한 방향성을 설정하였다. 와이어프레임 작성: 프로젝트의 ..
Msungmin
개발자가 되기를 희망하는 사람