본문 바로가기

분류 전체보기277

[Android Studio] SharedPreferences Shared Preferences는 앱내에서 간단하게 데이터를 저장할때 사용하는 저장소이다. 웹의 localStorage 같은 개념인거 같다. public class MainActivity extends AppCompatActivity { EditText editSentence; Button btnSave; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editSentence = findViewById(R.id.editSentence); btnSave = findViewById(R.id.btnSave); .. 2023. 12. 27.
[Android Studio] Activity 단방향 데이터, 양방향 데이터 전달하는 법 단방향 데이터 전달 보낼 때 Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("name", name); intent.putExtra("age", age); startActivity(intent); 인텐트 객체를 만들고 전달 데이터를 key와 value로 세팅해서 보낸다. 받을 때 String name = getIntent().getStringExtra("name"); // 받아온 데이터가 없을 경우 디폴트를 0으로 설정함 int age = getIntent().getIntExtra("age", 0); 보낼 때는 타입과 상관없이 putExtra인 반면, 받을 때는 get 다음에 타입을 맞게 해야된다. g.. 2023. 12. 26.
[Android Studio] Activity 간 화면 전환하는 방법 1. 새로운 액티비티 파일을 만든다. (동일한 Empty Views Activity) 2. 인텐트 객체를 생성한다. Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); 인텐트란? 어떤 액티비티가 어떤 액티비티를 실행하겠다는 것 첫번째 인자에는 실행할 액티비티(누가), 두번째 인자에는 실행 당할 액티비티(누구를)가 들어간다. startActivity(변수명)로 실행한다. 2023. 12. 26.
[Android Studio] Activity 생명주기(lifecycle) 함수 설명 안드로이드 액티비티의 생명주기(activity lifecycle)란? 액티비티의 생명주기(activity lifecycle)는 액티비티가 생성되고 소멸될 때 일어나는 일련의 이벤트들을 나타냅니다. 액티비티는 다양한 상태로 이동하며, 각 상태에 따라 특정한 생명주기 메서드가 호출됩니다. 주요한 생명주기 메서드에 대한 설명은 다음과 같습니다. onCreate() 액티비티가 처음 생성될 때 호출됩니다. onStart() 액티비티가 사용자에게 보여지기 직전에 호출됩니다. onResume() 액티비티가 사용자와 상호 작용을 시작할 때 호출됩니다. onPause() 다른 액티비티가 화면을 가리거나, 현재 액티비티가 일부분만 화면에 나타날 때 호출됩니다. 액티비티가 부분적으로 가려지거나 다른 액티비티가 나타날 때 실.. 2023. 12. 26.
[AWS] React 웹 AWS S3로 배포하기 먼저, IAM에서 유저 생성 후 AmazonS3FullAccess 권한 추가 Access key ID, Secret access key 발급 받은 후에 보관해놓고 S3로 이동한다. S3로 들어가서 버킷 만들기 클릭 -> 버킷 이름(유니크하게) ACL 활성화됨 체크 퍼블릭 엑세스 차단 체크 풀고 버킷 생성한다. 그 후 배포할 프로젝트 터미널에 npm run build 실행 -> build 폴더 생성 생성된 버킷 들어가서 업로드 클릭 -> 폴더 추가 -> 생성된 build 폴더 업로드 그 후 권한 탭의 버킷 정책 편집 클릭 { "Version":"2012-10-17", "Statement":[ { "Sid":"AddPerm", "Effect":"Allow", "Principal": "*", "Action":.. 2023. 12. 24.
[React] 웹으로 posting API 구현하기 전에 만든 포스팅하는 api를 이용해서 웹으로 구현해보려고 한다. 참고 : https://dongsu96.tistory.com/149 코드 import axios from "axios"; import { useState } from "react"; function Posting(){ let [content, setContent] = useState(""); let [file, setFile] = useState(null); let [img, setImg] = useState(""); function post(){ if(content == "" || file == null) alert("입력 후 버튼"); const formData = new FormData(); formData.append("conten.. 2023. 12. 23.
[React] 웹으로 Object detection API 구현하기 전에 api를 만들었으니 웹으로 이용해보려고 한다. 참고 : https://dongsu96.tistory.com/148 코드 import axios from "axios"; import { useState } from "react"; function Detect(){ let [file, setFile] = useState(null); function filefunc(){ if (file != null){ const formData = new FormData(); formData.append("photo", file); axios.post("URL", formData) .then((res) => { console.log(res.data); }) .catch((e) => { console.log(e); }).. 2023. 12. 23.
[React] 웹에서 flask 서버로 통신해 검색 기능 구현하기 Postman에서 영화 검색 API 개발 후 Docker Image로 배포해놨던 flask 서버에 웹으로 데이터 요청과 응답을 받아보려고 한다. 코드 import { useState } from 'react'; import axios from 'axios'; function App() { let [search, setSearch] = useState(""); function func(){ axios.post(`https://도메인주소/movie?keyword=${search}&offset=0&limit=25`) .then((res) => { console.log(res.data); }) .catch((e) => { console.log(e); }) } return ( setSearch(e.target.v.. 2023. 12. 23.
[React] localhost:3000 -> flask 서버 통신 시 CORS 에러 해결 과정 리액트로 만든 웹 -> Docker Image로 배포한 flask 서버로 데이터를 주고 받으려고 한다. -> 참고 https://dongsu96.tistory.com/132 라이브러리 axios를 이용해 해당 url로 요청을 보냈는데 오류가 뜬다. F12를 눌러 개발자도구의 console 탭에서 내용을 확인해보니 이런 에러 메세지가 떴다. Access to XMLHttpRequest at 'https://q42up841da.execute-api.ap-northeast-2.amazonaws.com/movie/15' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header.. 2023. 12. 23.
JavaScript / React에서 sync / async(동기 비동기) 관련 상식 자바스크립트의 sync / async 관련 상식 자바스크립트는 일반적인 코드를 작성하면 synchronous 하게 처리됩니다. 번역하면 동기방식인데 코드 적은 순서대로 윗줄부터 차례로 코드가 실행된다는 뜻입니다. 거의 모든 프로그래밍 언어들은 위에서 부터 한줄한줄 실행됩니다. 예를 들어 console.log(1+1) console.log(1+2) console.log(1+3) 이런 코드는 그냥 위에서부터 한줄한줄 잘 실행됩니다. 그니까 콘솔창에 2, 3, 4 순으로 출력된다는 소리입니다. 뭔가 당연한 소리를 하고 있습니다. 자바스크립트는 ajax, 이벤트리스너, setTimeout 이런 함수들을 사용하면 asynchronous하게 코드 실행이 가능합니다. 번역하면 비동기적인데 이런 함수들은 처리 시간이 .. 2023. 12. 23.