Java
-
SOLID - Open-Closed 개방폐쇄원칙 파헤치기Java/디자인패턴 2024. 10. 22. 14:41
Open-Closed 개방폐쇄원칙**Open-Closed Principle (OCP)**는 SOLID 원칙 중 하나로, 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다는 개념입니다. 즉, 새로운 기능이나 요구사항이 생기더라도 기존 코드를 수정하지 않고 확장하는 방식으로 처리해야 한다는 뜻입니다. 적절하지 못한 코드public class ReportGenerator { public void generateReport(String type) { if (type.equals("PDF")) { System.out.println("Generating PDF report..."); } else if (type.e..
-
SOLID - SRP 단일 책임의 원칙 파헤치기Java/디자인패턴 2024. 10. 22. 14:31
SRP 단일 책임의 원칙**Single Responsibility Principle (SRP)**는 객체 지향 설계 원칙 중 하나로, 클래스는 하나의 책임만 가져야 한다는 것을 의미합니다. 즉, 클래스가 여러 가지 역할을 동시에 수행하지 않고, 하나의 역할 또는 기능만을 처리해야 합니다. SRP를 위반하면 코드의 유지 보수성이 낮아지고, 변경에 대한 영향 범위가 넓어질 수 있습니다. SRP에 위배된 코드public class UserService { public void saveUser(User user) { // Save user to database System.out.println("User saved to database: " + user.getName()); ..
-
Java - PageHandler 페이지네이션 구현Java/JAVA 2024. 10. 1. 20:23
public class PageHandler { private int totalCnt; //총 게시물 갯수 private int pageSize; //한 페이지의 크기 private int naviSize = 10; //페이지 내비게이션이 크기 private int totalPage; //전체 페이지의 갯수 private int page; //현재 페이지 private int beginPage; //내비게이션의 첫번째 페이지 private int endPage; //내비게이션의 마지막 페이지 private boolean showPrev; //이전 페이지로 이동하는 링크를 보여 줄 것인지 private boolean showNext; //다음 페이지로 이동하..
-
TransactionAspectSupport, PlatformTransactionManager , RollbackJava/JAVA 2024. 9. 13. 17:33
1. PlatformTransactionManager와 TransactionStatus를 사용하는 방식private PlatformTransactionManager transactionManager;// 트랜잭션 매니저를 주입받는 setter 메소드public void setTransactionManager(PlatformTransactionManager transactionManager) { this.transactionManager = transactionManager;}// 트랜잭션 정의DefaultTransactionDefinition def = new DefaultTransactionDefinition();def.setPropagationBehavior(TransactionDefinitio..
-
[JAVA] 정규식을 이용하여 패스워드 Validator 만들기!Java 2024. 5. 20. 00:29
패스워드 Validator Java를 통해서 간단한 패스워드 Validator를 생성해보자. 요즘 보안이 높아짐에 따라 패스워드 규칙도 복잡해진다. 우선 대표적인 규칙들을 나열해보자. (?=.*[A-Z]): 대문자가 한 글자 이상 포함되어야 함.(?=.*[0-9]): 숫자가 포함되어야 함.(?=.*[a-z]): 문자가 포함되어야 함.(?=.*[!@#$%^&*()-+=]): 특수문자가 포함되어야 함..{8,}$: 최소 8자 이상이어야 함. 위와 같이 요즘 규칙들을 적용한다면 5가지의 조건이 부여된다. 이러한 정규식을 통해서 Validator 클래스를 생성해보자. public class PasswordValidator { private static final String PASSWORD_PATT..
-
Java - Map getOrDefault란?Java/JAVA 2023. 10. 16. 14:21
getOrDefault 찾는 Key의 값이 존재한다면 해당 Value를 반환, Key가 존재하지 않는다면 기본값을 반환 getOrDefault @Override public V getOrDefault(Object key, V defaultValue) { Node e; return (e = getNode(hash(key), key)) == null ? defaultValue : e.value; } 예시를 통해 알아보자 import java.util.HashMap; public class Test { public static void main(String[] args) { String[] test = {"A", "B", "C", "D", "A"}; HashMap map = new HashMap(); for(..
-
Java - txt파일 줄바꿈기준 출력하기Java/JAVA 2023. 10. 12. 13:55
파일 불러오기, 읽어오기, 출력하기 https://jay-cheol.tistory.com/203 JAVA - txt파일불러오기,읽어오기,출력하기 1. 파일불러오기 / 2. 파일 읽어오기 / 3. 파일 출력하기 파일불러오기 import java.io.File; File note = new File("C:\\Users"); 파일이 위치한 경로를 입력해주면된다. 파일 읽어오기 BufferedReader br = new BufferedRead jay-cheol.tistory.com 파일을 읽어와 한줄씩 읽어오는 코드 while((str = br.readLine()) != null) { System.out.println(str); } javaTest.txt 파일 file Test file Test 3 file T..