전체 글 39

[Java] 인텔리제이에서 특정 값을 전역으로 사용하기: System.getProperty, System.getenv

안녕하세요.저번글과 비슷한 내용인데요. 이번엔 인텔리제이에서 환경변수 설정을 하는 방법을 알아보겠습니다. -동기-1. 안드로이드 앱을 만들고 AWS를 사용한 서버를 만들었음2. 무료 1년기한이 지나서 로컬서버로 안드로이드에 작성된 클래스의 서버 주소값을 일일이 값을 수동으로 바꿔줌3. 한번에 바꿀수있는 환경변수를 찾게 되었음. public class Main { public static void main(String[] args) { // 인텔리제이 VM options에서 설정한 시스템 속성 String myProperty = System.getProperty("my.property"); String appVersion = System.getProperty("a..

JAVA 2025.08.03

[Java][Android] BuildConfig을 사용하여 안드로이드 앱에서 특정 값을 전역으로 사용하기 / 모든 클래스 사용 /

안녕하세요,AWS를 1년간 무료로 사용하고 있었고 그 기한이 다 되서 이제 로컬 서버로 대신하려고합니다. 현재 만들어진 앱의 코드는 해당 서버 주소 값을 모든 클래스에 하드코딩으로 작성하였고이번 로컬 서버로 옮기는 작업에서 하나 하나 찾아가면서.... 전부 수정을 완료했습니다.. 이로써 느낀점은... 한번에 바꿀수 있는 방법이 있지 않을까? 생각하여 찾아보니 BuildConfig 을 사용해서 빌드에 설정한 값들을 사용 할 수 있게 할 수 있었습니다. 또한 다른 값들을 지정하여 사용 할 수 있었습니다. 예제코드 # build.gradle (Module: app) plugins { alias(libs.plugins.android.application)}android { namespace 'com...

Android 2025.08.02

오라클 버츄얼박스(VirtualBox) ubuntu 가상서버 Vscode연결하기

Vscode를 실행합니다 실행후 >Remote-SSH: Connect to Host... 선택합니다. 여기서 Add New SSH Host..를 선택합니다. 해당 그룹의 제목을 만듭니다. 여기서 본인의 컴퓨터에.ssh파일의 config으로 설정합니다.그럼 설정한 test1의 내용이 나옵니다.https://superhardcoding.tistory.com/41 오라클 버츄얼박스(VirtualBox) 가상 컴퓨터 서버설치하기(Apache,PHP,Mysql)사용하던 AWS가 무료 버전이 기한이 다 되어 내 컴퓨터에 가상 컴퓨터를 설치하여 서버를 만들어 AWS 서버를 대체 하기로 했다. 서버를 만들면서 글을 작성해야하는데 순전히 다 만들고 기억나는superhardcoding.tistory.com 앞전 설치시..

메모 2025.07.31

오라클 버츄얼박스(VirtualBox) 가상 컴퓨터 서버설치하기(Apache,PHP,Mysql)

사용하던 AWS가 무료 버전이 기한이 다 되어 내 컴퓨터에 가상 컴퓨터를 설치하여 서버를 만들어 AWS 서버를 대체 하기로 했다. 서버를 만들면서 글을 작성해야하는데 순전히 다 만들고 기억나는대로 작성하였기 때문에 맥락이 맞지 않을 수도 있습니다. 먼저 아래 링크에서 버츄얼 박스를 다운 받는다 필자는 윈도우 임으로 윈도우 버전으로 다운 받았다. https://www.oracle.com/kr/virtualization/technologies/vm/downloads/virtualbox-downloads.html?source=:ow:o:p:nav:mmddyyVirtualBoxHero_kr&intcmp=:ow:o:p:nav:mmddyyVirtualBoxHero_kr 다음은 ubuntu iso파일을 다운 받는다..

메모 2025.07.31

[Java][Android] Shared Element Transition 사용하여 화면이 커지면서 전환 / 부드럽게

Shared Element Transition을 사용해야 할까요? 앱 사용중에 목록에서 이미지를 탭했을 때 상세 화면으로 넘어갈 때 이미지가 부드럽게 커지면서 나타나거나, 목록 아이템의 텍스트가 상세 화면의 제목으로 자연스럽게 이어지는 것을 본 적이 있으신가요? 바로 그것이 Shared Element Transition입니다. Shared Element Transition, 어디에 사용하면 좋을까요?이미지 목록 & 상세 보기: 가장 대표적이고 흔하게 사용되는 예시입니다. 이미지 목록에서 특정 이미지를 탭하면, 해당 이미지가 부드럽게 커지면서 상세 화면의 이미지로 전환됩니다. 텍스트나 설명도 함께 전환될 수 있습니다. 예시: 소셜 미디어 앱의 피드, 사진 갤러리 앱뉴스 기사 목록 & 상세 기사: 뉴스 기사..

Android 2025.07.21

[Java][Android] RXJava 사용하기 / AsyncTask의 대체

AsyncTask의 대체안드로이드 개발에서 비동기 처리는 사용자 경험을 해치지 않고 백그라운드에서 시간이 오래 걸리는 작업(네트워크 통신, 데이터베이스 접근 등)을 처리하는 데 필수적입니다. 과거에는 AsyncTask가 이러한 비동기 처리를 위한 손쉬운 방법으로 널리 사용되었습니다. 하지만 AsyncTask는 몇 가지 중요한 설계상의 단점(예: 메모리 누수 위험, 유연성 부족, 복잡한 스레드 관리의 어려움) 때문에 더 이상 권장되지 않습니다. https://developer.android.com/reference/android/os/AsyncTask AsyncTask | API reference | Android Developers developer.android.com 따라서 안드로이드는 Kot..

Android 2025.07.13

[React] 마크다운 프리뷰어 만들기

1. 마크다운의 탄생 배경: 왜 필요했을까? 우리가 흔히 사용하는 워드 프로세서는 WYSIWYG (What You See Is What You Get, 보이는 대로 얻는다) 방식을 사용합니다. 버튼을 클릭하면 굵게, 기울임꼴, 목록 만들기 등 복잡한 서식 변경이 즉각적으로 눈에 보이게 적용되죠. 하지만 웹 세상은 조금 다릅니다. 초기 웹에서는 HTML이라는 마크업 언어를 사용해야만 글에 서식을 적용할 수 있었습니다. 안녕하세요! 이것은 굵은 글씨와 기울임꼴 입니다. 목록 아이템 또 다른 아이템 보시다시피 HTML은 태그가 많아 다소 번거롭고, 글 자체의 가독성을 해치기도 합니다. 글을 쓰기 위한 목적보다는 문서의 구조를 정의하는 데 더 초점이 맞춰져 있었죠. 이런 불편함을 해소하기 위해 200..

React 2025.06.23

[React] useReducer 사용하여 간단한 계산기 만들기

useReducer 란 무엇일까요? useState의 대체재이며 복잡한 상태 로직을 컴포넌트 외부로 분리하는 상태 관리 훅입니다. Reducer: (주방장/레시피북): 상태를 어떻게 변경할지에 대한 '로직'이 담긴 순수 함수.Action: (주문서): 상태 변경을 요청하는 '명령'이 담긴 객체. (type, payload)Dispatch: (웨이터): Action을 Reducer에게 전달하는 '함수'.(컴포넌트 UI) → dispatch(action) → (Reducer) → (새로운 State) → (컴포넌트 UI 업데이트) 그럼 왜 useReducer 을 사용할까요?1. "UI를 그리는 코드"와 "데이터를 처리하는 로직"이 분리되어 컴포넌트가 훨씬 깔끔해지고 본연의 역할(렌더링)에 충실해집니다.2. ..

React 2025.06.16

[React] 리액트로 Todo-List (투두리스트) 만들기

리액트란 무엇일까요?사용자 인터페이스 (UI)를 만들기 위한 자바스크립트 라이브러리 입니다. 1. 사용자 인터페이스: 우리가 웹사이트나 앱에서 보는 모든것, 즉 버튼, 입력창, 메뉴, 사진 등 화면에 보이는 모든 요소를 의미합니다.2. 자바스크립트 라이브러리: '프레임워크'가 아닌 '라이브러리'라는 점이 중요합니다. 프레임워크가 집을 짓는데 필요한 모든 것(설계도, 규칙, 도구)을 제공하는 '풀세트'라면, 라이브러리는 특정 기능(예: 못을 박는 망치)을 쉽게 사용 할 수 있도록 제공하는 '도구'에 가깝습니다. 1. 컴포넌트 (Component): 레고 블록처럼 조립하는 개발리액트는 UI를 '컴포넌트'라는 재사용 가능한 조각들로 나누어 생각합니다.홈페이지를 레고로 만든다고 생각해봅시다.검색창 레고 블록 ?..

React 2025.06.09

[Java][Android] 안드로이드 자바 버튼 연속, 연타 방지 방법

왜 버튼 연타 방지가 필요한가요?서버 부하 증가: 사용자가 버튼을 빠르게 여러 번 누르면, 각 클릭마다 서버로 API 요청이 중복해서 전송될 수 있습니다. 이는 서버 리소스를 불필요하게 소모시키고, 심한 경우 서비스 장애로 이어질 수 있습니다. 의도치 않은 데이터 중복 생성/수정: 예를 들어 '게시글 작성' 버튼을 연타하면 동일한 내용의 게시글이 여러 개 생성될 수 있습니다. 사용자 경험(UX) 저하: 앱이 반복적인 요청으로 인해 느려지거나, 예기치 않은 동작을 보이면 사용자는 불편함을 느낍니다. 클라이언트 리소스 낭비: 불필요한 네트워크 요청은 사용자의 데이터 소모를 늘리고, 배터리 사용량에도 영향을 줄 수 있습니다. 마지막 클릭 시간으로 연타 방지 (Throttling)마지막으로 유효한 클릭이 발생한..

Android 2025.06.02