분류 전체보기1555 [JAVA] java.nio.file을 사용한 간단한 메모장 만들기 java.nio.file 패키지를 사용한 모던 자바 파일 입출력(I/O) 방법과 사용자 입력을 처리하는 간단한 메모장을 만들어 보겠습니다. 언제 사용하면 좋을까요? 1. 설정 파일 또는 데이터 초안 생성: 사용자가 입력한 특정 키 값(첫 줄)을 파일 이름으로 하고 나머지 내용을 값으로 하는 설정 파일(.txt, .properties 등)의 초안을 만드는 데 활용할 수 있습니다.2. 사용자 생성 콘텐츠 저장: 사용자가 게시글 제목과 내용을 입력하면, 제목을 기반으로 파일 이름을 만들어 저장하는 간단한 시스템의 로직을 이해하는 데 도움이 됩니다. java.nio.file 장점1. 직관적인 API: Path 객체로 파일/디렉토리 경로를 명확하게 표현하고, Files 유틸리티 클래스로 다양한 파일 관련 작업을.. 2025. 4. 28. [Java][Android] FLAG_SECURE 플래그로 스크린샷/화면 녹화 방지 안녕하세요, 오늘은 FLAG_SECURE 플래그를 사용해서 간단하게 스크린샷/화면 녹화 방지를 해보도록 하겠습니다. WindowManager.LayoutParams.FLAG_SECURE 플래그는 앱 화면이 스크린샷, 화면 녹화, 미러링 등에 노출되지 않도록 막아줍니다. 아래 예제는 안드로이드 스튜디오 에뮬레이터에서 적용되지 않으며,기기에서 테스트해야 확인할 수 있습니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { private boolean isSecureEnabled = false; private Button toggleSecureButton; @Override protected void .. 2025. 4. 27. [Java][Android] livedata 활용 예시 만들기 오늘은 livedata를 활용해 액티비티가 활성화 상태일때만 livedata의 콜백이 호출되는지 확인하는 예시를 만들어 보겠습니다. 레이아웃 xml 파일 코드(activity_main.xml) 액티비티 자바 코드public class MainActivity extends AppCompatActivity { private static final String TAG = "LiveData"; //로그 필터링을 위한 값 // 정수형 값을 관찰할 수 있는 LiveData 객체 private MutableLiveData counterLiveData = new MutableLiveData(); private Handler handler = new Handler(Looper.getMai.. 2025. 4. 25. [JAVA] 사용자 정의 예외 만들기 안녕하세요.오늘은 사용자 정의 예외를 만들어보겠습니다. 1. Checked 예외와 Unchecked 예외의 차이와 특징(1) Checked 예외 (체크드 예외)컴파일러가 예외 처리를 강제합니다.예외가 발생할 수 있는 코드를 사용할 때, 반드시 try-catch로 처리하거나 throws로 선언해야 합니다.주로 외부 환경(파일 입출력, 네트워크, 데이터베이스 등)과 관련된 예외입니다.예시: IOException, SQLExceptiontry { FileReader fr = new FileReader("test.txt");} catch (FileNotFoundException e) { System.out.println("파일이 없습니다!");} (2) Unchecked 예외 (언체크드 예외)컴파일러.. 2025. 4. 24. [Java] HttpClient 사용해서 OpenAI GPT API 호출하기 안녕하세요 오늘은 OpenAI 에서 제공하는 API 를 호출해보도록 하겠습니다. OpenAI의 GPT 시리즈는 대표적인 LLM 중 하나이며, 우리는 OpenAI에서 제공하는 API를 통해 이 모델에 직접 질문을 보내고 응답을 받아보겠습니다. 즉, “프롬프트”라는 입력을 전달하고, 모델이 생성하는 자연어 응답을 받아볼 수 있습니다. LLM(Large Language Model, 대규모 언어 모델) 이란 말그대로 "엄청 큰 언어 모델" 입니다.수십억 개 이상의 단어, 문장, 문서를 학습해서 사람처럼 문장을 이해하고 생성하는 인공지능을 의미합니다. 1. 먼저 open ai 홈페이지에서 API 인증 키를 발급 받습니다. 2. Http 통신 (HttpClient) 으로 오픈 AI 의 서버에 요청.. 2025. 4. 23. [Java][Android] Lottie 라이브러리 활용해 애니메이션 기능 구현하기 안녕하세요오늘은 Lottie 라이브러리로 애니메이션 기능을 구현해보도록 하겠습니다.Lottie는 애니메이션을 JSON 형식으로 앱에서 재생할 수 있도록 해주는 도구입니다. https://lottiefiles.com 에서 마음에 드는 .json 애니메이션 파일을 다운로드 해주시고 이름을 animation.json 으로 변경해준 뒤에,(*이름을 꼭 animation으로 할 필요는 없지만 이번 포스팅에서는 animation을 사용하겠습니다.)해당 json 파일을 res/raw/ 폴더에 저장해주시면 됩니다.(*raw 폴더가 없으면 만들어주세요.) 그리고 build.gradle.kts (Module :app) 에implementation ("com.airbnb.android:lottie:6.0.0")로티 라이브.. 2025. 4. 22. [Java][Android] 안드로이드 Java로 유튜브 검색 구현하기 안녕하세요 youtube API를 사용해서 유튜브 검색을 하는 방법을 알아보도록 하겠습니다. https://stickode.tistory.com/331 [JAVA][Android] Youtube API 사용법이번에는 유튜브 API 를 사용해보겠습니다. https://stickode.com/detail.html?no=2714 스틱코드 stickode.com 위의 포스트를 즐겨찾기 하시면 'Activity_Youtube.java' 를 입력하여, 해당 코드를 사용할 수 있습니다. 1.stickode.tistory.comAPI 발급 방법입니다. 참고하시길 바랍니다. build.gradle 파일에 다음의 depencies를 추가해주세요.implementation 'com.squareup.retrofit2:retr.. 2025. 4. 21. [Java][Android] SpannableString 와 ImageSpan으로 TextView에 아이콘 넣기 안녕하세요, 오늘은 SpannableString 와 ImageSpan을 사용하여 텍스트에 아이콘(이미지)를 삽입하는 예제를 만들어보겠습니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = findViewById(R.id.textView); // 1. 텍스트 준비 (앞에 공백 포함).. 2025. 4. 20. [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. 이전 1 ··· 7 8 9 10 11 12 13 ··· 173 다음