전체 글1493 [Java] 옵저버 패턴 활용 예시 구현하기 오늘은 옵저버 패턴을 활용해 데이터를 업데이트하는 예시를 구현해보겠습니다. 옵저버 패턴은 주체(subject) 라 불리는 객체가 해당 객체 자신에게 의존하는 관찰자들(observer)의 목록을 관리하고, 주체의 상태가 변경될때마다 관찰자들에게 알려주는 디자인 패턴 입니다. Main 클래스public class Main { public static void main(String[] args) { // Subject(주체) 생성 Subject subject = new Subject(); // Observer(관찰자) 생성 Observer observer1 = new ConcreteObserver("Observer 1"); Observe.. 2025. 4. 19. [JAVA] 예외 처리(Exception Handling) 1. 예외(Exception) vs 오류(Error)프로그래밍을 하다 보면 예외(Exception)와 오류(Error)라는 단어를 자주 접하게 됩니다. 자바에서 예외(Exception)와 오류(Error)는 모두 실행 중에 발생하는 문제 상황을 나타냅니다. 하지만, 이 둘은 본질적으로 다릅니다.(1) 예외(Exception)정의:예외는 프로그램 실행 중에 발생할 수 있는 예상 가능한 문제입니다.예를 들어, 파일을 읽으려는데 파일이 없거나, 배열의 잘못된 인덱스에 접근하는 경우가 이에 해당합니다.특징:주로 프로그래머의 실수나 외부 환경에서 발생합니다.예외 처리(Exception Handling)를 통해 문제를 복구하거나 적절히 대처할 수 있습니다.예외는 Exception 클래스를 상속받아 구현됩니다.예시:.. 2025. 4. 17. [Java] Apache POI로 Excel 파일을 .txt로 변환하기 안녕하세요 오늘은 Apache POI 라이브러리를 사용하여 엑셀 파일을 텍스트 파일로 변환해보도록 하겠습니다 기존 엑셀 파일입니다 Main.javapublic class Main { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("엑셀파일이 저장되어 있는 경로/vocab_sample.xlsx"); Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = workbook.getSheetAt(0); BufferedWriter writer = new BufferedWrite.. 2025. 4. 16. [Java][Android] InputFilter 사용해서 글자 수 제한하기 안녕하세요오늘은 InputFilter를 사용해서 글자수를 제한하는 방법을 알아보도록 하겠습니다. 우선 전체 코드입니다. activity_main.xml MainActivity.javapublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText editText = findViewById(R.id.editText); // 글자 수 제한: 최대 10자 InputFilter leng.. 2025. 4. 15. [Java] 자바 Record 불변 데이터 객체 쉽게 만들기 (Java 14+) 레코드(Record)란?Java 14부터 도입된 record는 불변(immutable) 데이터를 담기 위한 간결한 클래스 문법입니다.우리가 흔히 사용하는 DTO(Data Transfer Object)나 VO(Value Object) 클래스보다 훨씬 간단하고 명확하게 데이터를 표현할 수 있죠. 불변(Immutable) 데이터란?한 번 만들어진 이후, 내부 상태(값)를 바꿀 수 없는 객체를 의미.즉, 객체가 생성되고 나면 필드 값을 변경할 수 없고 외부에서 setter로 값을 바꾸는 것도 불가능 불변 객체는 데이터를 바꿀 수 없으므로,여러 스레드가 동시에 접근해도 동기화(synchronized) 처리 없이 사용할 수 있음. 예) 이 클래스는 setName()을 통해 객체의 상태(이름)를 바꿀 수 있어 → .. 2025. 4. 14. [Java][Android] SpannableString 로 TextView 특정 단어만 색 바꾸기 & 클릭 이벤트 주기 안녕하세요, 안드로이드 앱을 만들다 보면 TextView 안의 특정 단어에만 색을 입히거나, 클릭 이벤트를 부여하고 싶을 때가 있습니다.예를 들어, 서비스 약관 동의 문장에서 “약관 보기” 같은 텍스트만 파랗게 하고 클릭 가능하게 만들고 싶을 때가 있죠. 이럴 때 사용할 수 있는 기능이 바로 SpannableString입니다.이 글에서는 SpannableString을 활용하여 TextView의 일부만 색칠하고, 클릭 이벤트를 설정하는 예제를 만들어보도록 하겠습니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { TextView textView; @Override protected void onCreate.. 2025. 4. 13. [Java][Android]Web3j 활용해 지갑 주소 생성하기 오늘은 web3j 라이브러리를 활용하여 지갑주소 생성하는 예시를 만들어 보겠습니다. 라이브러리 준비 및 그래들 설정=> web3j는 자바 14버전 이후 부터 생긴 record 기능(14,15는 프리뷰, 16부터 정식 지원, 17은 해당 기능 지원하면서 LTS 버전)을 활용합니다. 해당 기능을 사용할 수 있도록 app 수준 build.gradle 파일에서 위 이미지와 같이 설정해주세요.=> web3j는 Bouncy Castle, Jackson, OkHttp, RxJava, WebSocket 라이브러리들에 의존하는 라이브러리 입니다. 이에 따라web3j 포함 필요한 라이브러리들을 추가해주세요. https://github.com/LFDT-web3j/web3j?tab=readme-ov-file GitHub .. 2025. 4. 11. [JAVA] Optional 클래스로 NullPointerException 방지하기 안녕하세요.오늘은 Optional 클래스를 활용해서 NullPointerException을 방지하는 방법을 알아보겠습니다. 1. NullPointerException이란?NullPointerException은 널값을 참조하려고 할 때 발생하는 런타임 에러입니다. 예를 들어, 아래 코드는 널값을 참조하려고 하기 때문에 에러가 발생합니다.String value = null;System.out.println(value.length()); // NullPointerException 발생 이 문제를 해결하기 위해 우리는 흔히 if문을 사용하여 널 체크를 합니다.if (value != null) { System.out.println(value.length());} else { System.out.prin.. 2025. 4. 10. [Java] JavaMail API 사용하여 자동 이메일 보내기 (1) 안녕하세요 오늘은 자바의 mail 전송 API 인 JavaMail API 를 사용하여 자동으로 이메일을 보내는 기능을 구현해보겠습니다. 이 기능을 통해 본인에게 알림 메일 보내는 시스템을 만들거나, 팀원들에게 매일 자동으로 리포트 파일을 보내거나 아니면 제 2외국어 학습을 위해 매일 일정 개수에 해당하는 단어장을 발송받아 볼수도 있습니다. 1. 의존성 추가 먼저 자바 maven 인 경우 아래 경로에서 라이브러리 버전 확인 후 의존성을 추가해줍니다. 17 17 UTF-8 https://mvnrepository.com/artifact/jakarta.mail/jakarta.mail-api 2. EmailSender.java 이메일 발신, 수신 주소.. 2025. 4. 9. 이전 1 2 3 4 5 6 7 ··· 166 다음