전체 글 (33) 썸네일형 리스트형 [React] 마크다운 프리뷰어 만들기 1. 마크다운의 탄생 배경: 왜 필요했을까? 우리가 흔히 사용하는 워드 프로세서는 WYSIWYG (What You See Is What You Get, 보이는 대로 얻는다) 방식을 사용합니다. 버튼을 클릭하면 굵게, 기울임꼴, 목록 만들기 등 복잡한 서식 변경이 즉각적으로 눈에 보이게 적용되죠. 하지만 웹 세상은 조금 다릅니다. 초기 웹에서는 HTML이라는 마크업 언어를 사용해야만 글에 서식을 적용할 수 있었습니다. 안녕하세요! 이것은 굵은 글씨와 기울임꼴 입니다. 목록 아이템 또 다른 아이템 보시다시피 HTML은 태그가 많아 다소 번거롭고, 글 자체의 가독성을 해치기도 합니다. 글을 쓰기 위한 목적보다는 문서의 구조를 정의하는 데 더 초점이 맞춰져 있었죠. 이런 불편함을 해소하기 위해 200.. [React] useReducer 사용하여 간단한 계산기 만들기 useReducer 란 무엇일까요? useState의 대체재이며 복잡한 상태 로직을 컴포넌트 외부로 분리하는 상태 관리 훅입니다. Reducer: (주방장/레시피북): 상태를 어떻게 변경할지에 대한 '로직'이 담긴 순수 함수.Action: (주문서): 상태 변경을 요청하는 '명령'이 담긴 객체. (type, payload)Dispatch: (웨이터): Action을 Reducer에게 전달하는 '함수'.(컴포넌트 UI) → dispatch(action) → (Reducer) → (새로운 State) → (컴포넌트 UI 업데이트) 그럼 왜 useReducer 을 사용할까요?1. "UI를 그리는 코드"와 "데이터를 처리하는 로직"이 분리되어 컴포넌트가 훨씬 깔끔해지고 본연의 역할(렌더링)에 충실해집니다.2. .. [React] 리액트로 Todo-List (투두리스트) 만들기 리액트란 무엇일까요?사용자 인터페이스 (UI)를 만들기 위한 자바스크립트 라이브러리 입니다. 1. 사용자 인터페이스: 우리가 웹사이트나 앱에서 보는 모든것, 즉 버튼, 입력창, 메뉴, 사진 등 화면에 보이는 모든 요소를 의미합니다.2. 자바스크립트 라이브러리: '프레임워크'가 아닌 '라이브러리'라는 점이 중요합니다. 프레임워크가 집을 짓는데 필요한 모든 것(설계도, 규칙, 도구)을 제공하는 '풀세트'라면, 라이브러리는 특정 기능(예: 못을 박는 망치)을 쉽게 사용 할 수 있도록 제공하는 '도구'에 가깝습니다. 1. 컴포넌트 (Component): 레고 블록처럼 조립하는 개발리액트는 UI를 '컴포넌트'라는 재사용 가능한 조각들로 나누어 생각합니다.홈페이지를 레고로 만든다고 생각해봅시다.검색창 레고 블록 ?.. [Java][Android] 안드로이드 자바 버튼 연속, 연타 방지 방법 왜 버튼 연타 방지가 필요한가요?서버 부하 증가: 사용자가 버튼을 빠르게 여러 번 누르면, 각 클릭마다 서버로 API 요청이 중복해서 전송될 수 있습니다. 이는 서버 리소스를 불필요하게 소모시키고, 심한 경우 서비스 장애로 이어질 수 있습니다. 의도치 않은 데이터 중복 생성/수정: 예를 들어 '게시글 작성' 버튼을 연타하면 동일한 내용의 게시글이 여러 개 생성될 수 있습니다. 사용자 경험(UX) 저하: 앱이 반복적인 요청으로 인해 느려지거나, 예기치 않은 동작을 보이면 사용자는 불편함을 느낍니다. 클라이언트 리소스 낭비: 불필요한 네트워크 요청은 사용자의 데이터 소모를 늘리고, 배터리 사용량에도 영향을 줄 수 있습니다. 마지막 클릭 시간으로 연타 방지 (Throttling)마지막으로 유효한 클릭이 발생한.. [Java][Android] SharedPreferences 데이터 암호화 하기! 내 앱의 비밀번호, SharedPreferences에 그냥 저장해도 될까? 🤫 EncryptedSharedPreferences로 안전하게!안녕하세요, 안드로이드 개발자 여러분! 앱 설정을 저장하거나 간단한 사용자 데이터를 유지할 때 SharedPreferences는 정말 편리한 도구입니다. 하지만 여기에 사용자 ID, 토큰, 심지어 (절대 그러면 안 되지만) 비밀번호 같은 민감한 정보를 그대로 저장하고 계신가요? 😱 루팅된 기기에서는 SharedPreferences 파일에 쉽게 접근하여 내용을 볼 수 있다는 사실, 알고 계셨나요? 오늘은 이러한 보안 문제를 해결하고, SharedPreferences에 저장되는 데이터를 안전하게 암호화하는 방법, 바로 **EncryptedSharedPreference.. [Java][Android] 화면 회전, 메모리 부족 onSaveInstanceState()로 데이터 지키기 안녕하세요, 안드로이드 앱을 만들다 보면 사용자가 화면을 가로로 돌리거나 세로로 돌릴 때, 입력했던 데이터나 현재 상태가 사라지는 경험을 해보신 적 있으신가요? 오늘은 이 문제를 해결하는 가장 기본적인 방법 중 하나인 onSaveInstanceState()와 onRestoreInstanceState()에 대해 알아보겠습니다. 왜 사라질까요?안드로이드에서 화면 방향이 변경되면, 현재 액티비티는 파괴(Destroy)된 후 다시 생성(Create)됩니다.이 과정에서 액티비티 내에 저장되어 있던 멤버 변수들의 값은 초기화되어 버립니다. 대처하기안드로이드는 이런 상황을 대비해 임시 데이터를 저장하고 복원할 수 있는 메커니즘을 제공합니다. 바로 onSaveInstanceState()와 onRestoreInstan.. [Java][Android]SMTP 지메일(Gmail) 연동하여 사용하기 연동할 지메일 계정으로 들어가 설정에서 모든 설정보기 클릭 다음 메뉴에서 전달 및 POP/IMAP 선택 후 아래와 같이 설정구글 오른쪽 상단 구글 계정 관리 클 보안 클릭 후 앱 비밀번호 검색 (검색 바로해도 상관없음) 개발에 사용 할 앱 이름이나(테스트 이름, 앱 이름 등등) 설정하면 비밀번호가 나온다 이런식으로 나온다. 잘 복사해서 저장하 [Java][Android] 안드로이드 가속계(accelerometer)센서, 흔들림 감지 예제 1. 개요안드로이드의 가속도계(Accelerometer) 센서를 이용하면 기기의 움직임, 방향, 흔들림 등을 감지할 수 있습니다.이 예제에서는 기기가 흔들렸을 때 특정 동작(예: 토스트 메시지 출력)을 실행하는 기본적인 흔들림 감지 앱을 만들어 보겠습니다.2. 왜 사용할까요??가속도계를 사용하면 다음과 같은 동작 기반 인터랙션을 구현할 수 있습니다:기기를 흔들어 기능 실행 (예: 랜덤 뽑기, 새로고침)사용자의 움직임 감지 (만보기, 피트니스 앱)게임 컨트롤러로 사용 (기울이기, 흔들기)보안 기능 (예: 강제 흔들 때 긴급 메시지 전송)3. 어디에 사용하면 좋을까요???예시설명랜덤 추첨 앱흔들면 결과를 무작위로 선택QR 스캐너흔들면 플래시 ON/OFF메모 앱흔들면 ‘실수로 지운 항목 복구’게임기기를 기울이.. 이전 1 2 3 4 5 다음