분류 전체보기

Kotlin

안드로이드 웹뷰 카메라 & 사진 업로드

서비스 C의 코틀린 프로젝트에서 사용하던 웹뷰 카메라, 사진 업로드 코드가 안드로이드 버전 10 이상에서 작동하지 않는 문제가 발생했고, 해당 문제를 조치하는 방법을 담은 글이다. AndroidManifest.xml 바로 아래에 permission을 다음과 같이 추가한다. 아래에 FileProvider 필요한 부분을 넣어준다. (안드로이드 10 이상부터는 FileProvider를 이용해서 카메라 사진을 관리하는 것 같다.) 프로젝트 res 디렉토리 아래에 xml 디렉토리를 만들고 file_paths.xml 파일을 생성한다. MainActivity.kt 먼저 카메라 권한 설정 함수이다. fun checkPermission (): Boolean { return (ContextCompat.checkSelfPe..

Java

mac 자바 8 설치

자바 8 설치 방법 이 곳에서 macOS를 선택한 뒤 jdk-8u321-macosx-x64.dmg를 다운로드 다운로드 후 열고 설치를 진행 설치를 마친 뒤 터미널에 다음 명령어를 입력하면 설치된 자바를 모두 확인할 수 있다. /usr/libexec/java_home -V 자바 버전 변경 방금 설치한 자바로 버전을 변경하기 위해 터미널에 다음 명령어를 입력한다. export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) 자바 8과 자바 1.8 차이 예전부터 자바 8이 왜 1.8일까 궁금했는데 찾아보니(참고) 11 부터는 그냥 11로 사용하고 8은 1.8, 7은 1.7, 6은 1.6 --- 이런식으로 사용한다고 한다. 8은 Version Number이고 이 버전에 대한 Vers..

Python

[selenium] executable_path has been deprecated, please pass in a Service object

크롬 드라이브를 실행할 때 executable_path를 이용해서 열었더니 다음과 같은 에러가 발생했다. 해결방법은 다음과 같다. 1. webdriver-manager를 설치 pip install webdriver-manager 2. ChromeDriverManager를 이용하여 해당 Chrome버전에 맞는 chromedriver를 이용할 수 있게 한다 from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager def init_chrome_driver(): chrome_options = webdriver.Chro..

Python

스크래핑을 입문자의 공부 기록

올해 5월에 서비스D에서 필요한 메뉴를 위해 진행한 프로젝트가 있었다. 구축은 되었는데 선행되어야 하는 시스템이 필요하다 보니 아직 실제 서비스에 배포되진 못했다. 나중에 다시 그 프로젝트를 손대야 할 날이 올 것 같아서 일단 진행하면서 기록했던 것들을(이전 블로그 글들) 이 블로그에 옮겨 놓으려고 글을 쓰게 되었다. Python3, PyCharm 설치 운영체제: mac mac에는 파이썬 2.X 버전이 기본적으로 설치되어 있다고 한다. Python에 대해 잘 모르지만 찾아보니 Python3을 많이 쓰는 것 같아서 Python3과 PyCharm을 설치했다. Python 설치: https://www.python.org/ PyCharm 설치: https://www.jetbrains.com/pycharm/ 설치..

TIL

스프링 빈(Bean)이란?

Bean 이란? Spring IoC(Inversion of Control, 제어의 역전. 제어권이 뒤바뀜. 객체 간의 의존성을 이어주는 역할.) 컨테이너가 관리하는 자바 객체이다. new 연산자로 어떤 객체를 생성했을 때, 그 객체는 빈이 아니라 ApplicationContext.getBean으로 얻을 수 있는 객체이다. (ApplicationContext가 만들어서 담고 있는 객체를 의미한다) Bean 등록 방법 Component Scanning @ComponentScan, @Component 어노테이션을 사용해서 등록한다. Spring IoC 컨테이너가 IoC 컨테이너의 생성하고 그 안에 빈을 등록할 때 사용하는 인터페이스를 라이프사이클 콜백이라고 한다. 라이프사이클 콜백 중에는 @Component를..

Spring

@RequestParam, @PathVariable

Query Parameter, URI Path로 구분 @RequestParam과 @PathVariable은 모두 request URI를 처리할 때 사용한다. QueryParameter, URI Path로 구분할 수 있는데 QueryParameter인 경우에는 @RequestParams를 사용하고, URI Path인 경우에는 @PathVariable를 사용한다. @GetMapping("/foos/{id}") @ResponseBody public String getFooById(@PathVariable String id) { return "ID: " + id; } http://localhost:8080/spring-mvc-basics/foos/abc --- ID: abc @GetMapping("/foos")..

Spring

HttpClient, HttpEntity

HttpRequest를 사용하려 했는데, 서비스 D의 경우 java 1.8을 사용하고 있어서 HttpRequest 적용이 안 되었다... ㅎ;; 결국 HttpEntity와 ResponseEntity를 이용하여 작업을 진행했는데, 이 과정에서 HttpClient, HttpRequest, HttpResponse, HttpEntity, ResponseEntity에 대하여 공부한 기록을 남겨보려고 한다. HttpClient, HttpRequest, HttpResponse HTTP Client는 Java 11에서 추가되었고, HTTP request를 이용하는데 사용한다. HTTP/1.1과 HTTP/2, 동기식 비동기식 프로그래밍을 지원하고, request와 response bodies를 reactive-strea..

생각

어느 평범한 개발자의 개발 블로그 개설 이야기👍

예전엔 아무 생각 없이 글을 술술 잘 썼던 것 같은데, 더 나은 글을 쓰고 싶어 계속 생각하다 보니 한 문장 한 문장 쓰는 일이 부담이 되지만..^^; 짧게나마 개발 블로그의 첫 포스팅을 블로그 개설과 관련된 이야기를 적어보려 한다. 개설 계기 많은 분들이 그렇겠지만 나 역시 블로그 플랫폼이란 플랫폼은 다 써봤다. 모두 장단점이 있는지라 쓰다 다른 플랫폼이 좋아 보이면 미련 없이 글들을 다 삭제하고 떠났다. 2018년부터 시작했는데 직전 블로그를 제외하고 모든 글은 삭제하면서 플랫폼 이동을 해왔다. 지금 생각해 보면, 글을 모두 지운 건 조금 아깝지 않나 싶지만 예전 내 글들을 떠올려 보면 지우는 것도 나쁘지 않았다 싶을 정도로 어린 글이었다. ㅎㅎ (당시에는 개발 외에 일상 글들도 많이 올렸었다.) 티..

mean-ji
'분류 전체보기' 카테고리의 글 목록 (13 Page)