본문 바로가기

전체 글149

[Flutter, android] com.google.android.gms:play-services-safetynet:17.0.0 오류 관련 얼마 전에 새로운 앱을 구글 플레이 스토어에 배포하니 com.google.android.gms:play-services-safetynet:17.0.0 이런 오류 메세지가 떠서 여기 저기 구글을 검색해보며 무엇이 문제인지 알아보았습니다. 일단 해당 오류는 firebase auth 와 관련이 있는거 같아보였습니다. 해당 이슈는 native firebase가 문제 스택 오버플로우를 열심히 검색해보니 파이어베이스로 인증을 구현한 것이 문제였습니다. 일단 firebase_auth의 깃허브의 이슈에서 해당 문제를 검색해보았습니다. 답변 내용을 보니 native firebase sdk를 고쳐야 된다는 이야기가 나오네요. 바로 답변의 링크를 타고 가보았습니다. https://github.com/firebase/flu.. 플러터관련 정보/플러터-안드로이드 개발 2023. 3. 18.
[플러터와 파이어베이스]배포시 파이어베이스 로그인(Authentication(인증)) SHA-1을 추가해야 정상적으로 로그인이 된다. 개발 할 때는 로그인(Authentication(인증))잘 되었는데 플레이스토어에 배포하니까 로그인이 안 될때 파이어베이스의 여러 서비스 중 Authentication(로그인) 부분도 상당히 유용합니다. 이번에 처음으로 구글 로그인 기능을 추가한 앱을 만들어서 구글 플레이 스토어에 올렸는데요 2번의 거부가 발생하였지만 어찌 어찌 승인이 되어 기쁜 마음으로 다운 받아서 로그인 해보려고 하니 로그인 중 이라는 무한로딩이 발생하였습니다. 플레이 스토어에 올라간 뒤에는 SHA-1 인증서 추가 입력해야 된다. 그동안 개발 단계에서는 sha-1 인증 값을 터미널에서cd android && ./gradlew signingReport 입력하면 나오는 값으로 사용했습니다. 플레이스토어에 정식으로 출시한 앱은 플레이 스토.. 플러터관련 정보/파이어 베이스(플러터) 2023. 3. 14.
[플러터와 파이어베이스] 데이터 쿼리 정리(WHERE 문) 이번 포스팅에서는 1인 개발자에게 필수적인 파이어베이스 서비스 중 fireStore의 공식문서를 보고 공부한 내용을 이번 기회에 정리해보고자 작성해 보았습니다. 특히 데이터를 불러오는 방법이 중요하다 느껴 관계형 DB로 치면 WHERE문(arrayContrainsAny, arrayContains, whereIn)을 파이어베이스에서 어떻게 사용하는지 정리해 보겠습니다. 기본 이해 플러터로 백엔드 서버와 데이터를 주고받는 방식에 대해 일단 작성해보겠습니다. 플러터(Dart) 뿐아니라 다른 모든 언어도 다음과 같은 방식으로 서버와 데이터를 주고받고 있을 겁니다. 플러터에서 파이어베이스로 데이터 전달 데이터를 하나의 객체에 담는다. 데이터를 Json 형태로 변환한다. 서버(firebase)에 데이터를 보낸다. .. 플러터관련 정보/파이어 베이스(플러터) 2023. 2. 25.
[spring] application.properties 여러개 만들어서 편하게 설정 변경하기 스프링(SPRING)의 다양한 환경에 따라 application.properties 적용하기 스프링 개발을 하다보면 application.properties를 상황에 따라 바꿔야할 때가 있습니다. 예를 들면 혼자 개발할 때의 DB서버 설정, 같이 개발할 때 DB서버 설정, 테스트 서버와 연결할 때 설정 등등 그때 마다 주석처리하고 풀고하는 방법도 있지만 개발환경에 여러개라면 이것도 쉬운 방법은 아닙니다. 그래서 이번에는 application.properties를 여러개 만들어서 사용하는 법을 정리하고자 합니다. 1. application-{설정명}.properties 파일을 만들기 파일 이름을 application-{설정명}.properties과 같이 만듭니다. 아래 예시 코드는 스프링에서 mysql 서.. 프로그래밍사업/사이드 프로젝트 2023. 2. 11.
패스트 캠퍼스, 인프런, 코딩파파 코딩 인터넷 강의 후기 보통 코딩 인강을 하면 패스트 캠퍼스와 인프런이 양대 산맥인거 같습니다. 저는 패스트 캠퍼스에서 업무자동화 올인원 패키지와 파이썬 웹개발 올인원 패키지 두가지 강의를 구매했고, 인프런에서는 김영한님의 스프링 관련 인강과 딥러닝 호형의 머신러닝, 기타 파이썬 관련 강의를 구매하여 들었습니다. 그리고 마지막으로 플러터 개발을 하기 위해 코딩파파님의 플러터 인강을 구매 하였습니다. 이번 포스팅에서는 각각의 강의를 수강하면서 느낀 후기를 적어보도록 하겠습니다. 1. 패스트 캠퍼스 우선 제일 먼저 구매했던 패스트 캠퍼스 관련 후기입니다. 조금 듣다가 묵혀둔 강의여서 지금과는 조금 차이가 있을지 모른다는 점 참고 부탁드립니다. 제가 구매한 강의 파이썬 웹개발 올인원 패키지 업무자동화 올인원 패키지 제가 구매한 강의.. 후기/내가 직접 경험한 후기 2023. 1. 8.
WF-1000XM4 구매 2일차 후기 - 배터리 광탈 충전이슈, 노이즈캔슬링 성능 새해 첫날을 기념하여 WF-1000XM4를 선물 받았습니다. 쿠팡와우 회원이기 때문에 쿠팡 로켓 배송을 자주 이용하는데 2022년 12월 31일 구매하여 새해 첫날 인 2023년 1월 1일에 도착하여 1월 2일까지 열심히 사용해 보고 쓴 후기입니다. 2일차 후기의 내용은 노이즈 캔슬링 성능, 360 Reality Audio 관련 정보와 소니에 충전 관련 이슈를 물어본 후기를 남겨보도록 하겠습니다. 배터리를 광탈하게 하는 고속 충전 이슈 새로운 이어폰을 선물받고 이것 저것 알아보던 중 생각지도 못한 충전이슈가 있다는 것을 알았습니다. 고속 충전을 사용하면 배터리가 망가져서 배터리가 광탈하는 현상이 있다는 후기들이 많았습니다. 이것 때문에 보증기간이 지난 이어폰도 소니에서 무상교환해줬다는 후기들도 많았구요 .. 후기/내가 직접 경험한 후기 2023. 1. 2.
브레빌 920에 맞는 쇠로된 백플러싱 클리닝 디스크 구매 후기 브레빌 920용 청소 디스크를 구매 커피를 마시는 걸 좋아해서 브레빌 920을 구매해서 사용중입니다. 항상 커피를 맛있게 먹기 위해서는 뒷정리를 잘 해야하는데 그 일환으로 커피에 남은 찌꺼기를 없애는 백플러싱을 하고 있습니다. 이를 위해서는 실리콘으로 된 클리닝 디스크를 이용해야 하는데 이것이 점점 열을 받아 늘어져서 제대로 막지 못하는 현상이 발생하여 이번에 스텐리스로 된 클리닝 디스크를 구매한 후기 입니다. 실리콘 보다 내구성이 좋은 쇠로된 클리닝 디스크 기존 실리콘 디스크 보다 쇠로 되어 더 오래 사용할것 같은 디스크입니다. 브레빌 920모델은 58mm의 포터필터를 사용하기 때문에 네이버에서 58mm로 주문하니 딱 맞았습니다. 장착 전 장착 후 사실 처음에 잘 안들어가서 잘 못 샀나 했지만 잘 맞추.. 후기/내가 직접 경험한 후기 2022. 12. 11.
[자바] 날짜를 요일로 바꾸기 날짜를 요일로 바꾸기 파이썬이든 SQL이든 심지어 엑셀에도 날짜관련된 자료형에는 요일을 구하는 기능이 포함되어 있습니다. 이번에는 자바를 이용하여 날짜를 요일로 바꾸는 방법에 대해 알아보겠습니다. 자바8 이상부터는 LocalDate 클래스의 getDayOfWeek() 메서드를 통해 날짜를 요일로 바꿀 수 있습니다. 게다가 숫자가 아닌 FRIDAY와 같이 영어로 나와 더 알기 쉬운거 같습니다. 구현 순서 String 형태의 날짜를 입력한다: "2022-12-8" 또는 "2022-12-08" 한자리 숫자 앞에 0이 들어가냐 안들어가냐에 따라 포맷터가 달라집니다. 포맷터를 설정하기: 2022-12-8로 입력하면 포맷터가 달라집니다. DateTimeFormatter.ISO_LOCAL_DATE 포맷터를 사용하면 .. 프로그래밍사업/사이드 프로젝트 2022. 12. 9.
[스프링, 도커] 도커로 스프링 배포하기 스프링으로 간단한 서비스를 구현하고 나서 서버에 배포하여 언제든지 내가 만든 서비스를 이용하고 싶었습니다. 그래서 도커를 이용하는 배포하는 방법을 소개해보고자 합니다. 순서 1. 도커 파일만들기 2. 도커 파일로 이미지 만들기 3. 만든 이미지로 컨테이너 만들기(마운트 포함) 4. 스프링 빌드 파일 업로드 하기 1. 도커 파일 만들기 도커 파일 만들기는 쉽습니다. 간단히 메모장에 확장자 없이 Dockerfile이라는 이름으로 하셔도 되고 다른 이름을 사용하셔도 경로 설정만 해주시면 사용할 수 있습니다. 하지만 보통은 Dockerfile이라고 만듭니다. 도커 파일 내용 첫번째는 이 이미지의 베이스가 되는 이미지를 의미합니다. 두번째는 폴더위치를 바꾸는 명령어라는데 저는 그냥 기본 폴더, 시작하는 폴더라고 .. 프로그래밍사업/도커(docker) 2022. 11. 23.
[스프링 부트 + JPA + MySQL] 간단한 회원 관리 예제로 알아보는 스프링 부트 -4탄 Controller와 웹화면 만들기 마지막으로 실제 웹 화면을 보여주는 Controller부분입니다. 이 부분은 자바 뿐아니라 HTML도 어느 정도 알고 있어야되는 부분입니다. 처음 스프링을 공부하기로 마음 먹고서 패스트캠퍼스의 남궁성님의 강의과 인프런의 김영한님의 강의 중에 고민을 많이 했는데 저는 김영한 님의 강의를 선택하였습니다. 그 이유는 1. 무료로 스프링부트가 어떤거구나 알려주는 강의여서 2. 배달의 민족과 같이 대규모 서비스를 구축해본 경험과 실제로 사용하는 것만 가르쳐준다 이 두가지 이유로 김영한님의 강의를 선택하였고, 유료 강의도 두개 이미 결제하였습니다. 아무튼 스프링 부트를 시작하시려는 분들께 저의 포스팅이 조그이나마 도움이 되실기 빕니다. 그럼 마지막 컨트롤러 부분을 시작해보겠습니다. HomeController 만들기.. 프로그래밍사업/사이드 프로젝트 2022. 11. 16.
[스프링 부트 + JPA + MySQL] 간단한 회원관리 예제로 알아보는 스프링 부트 -3탄 Service 만들기 서비스 부분은 앞서 만든 Repository를 이용하여 회원가입, 회원조회 등 실제 서비스를 구현하는 부분입니다. 사실 Repository와 Service부분을 합쳐도 되는거 아니야 라고 생각을 했지만 김영한님의 스프링 강의를 쭉 들어보니 각각의 기능들을 구분하고 분리해놔야 유지보수가 쉽다는 것을 알았습니다. 예를 들어 입문 강의에서 JDBC 템플릿에서 JPA로 바꾸는 과정에서 repository와 service가 합쳐져 있으면 바꿔 끼우는것이 어려웠을텐데 코드 한줄만 바꾸면 쉽게 교체가 되었습니다. 자세한 내용은 인프런 스프링 부트 입문 강의를 들어보시면 알수 있습니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가.. 프로그래밍사업/사이드 프로젝트 2022. 11. 15.
윈도우에서 스프링 빌드(build) 하는 방법 Spring 윈도우에서 빌드(build)하는 방법 1. cmd 창을 열어 프로젝트 폴더로 갑니다. 2. gradlew.bat 치고 엔터 3. gradlew build 치고 엔터 4. build -> libs 폴더로 갑니다. 5. 프로젝트명-0.0.1-SNAPSHOT.jar 파일 있는지 확인 후 6. 그 파일이 있는 폴더로 가서 java -jar 프로젝트명-0.0.1-SNAPSHOT.jar 입력 매번 이렇게 하기 귀찮으면 배치 파일을 만들어서 사용하시면 쉽게 서버를 기동할 수 있습니다. 프로그래밍사업/사이드 프로젝트 2022. 11. 14.
[스프링 부트 + JPA + MySQL] 간단한 회원 관리 예제로 알아보는 스프링부트 -2탄 Repository 만들기 이번에는 DB에서 한 발자국 나아가 Repository를 만들어 보겠습니다. 리포지토리는 DB에 실제 저장, 불러오기 등의 기능을 구현하는 곳입니다. 실제 강의에서는 인터페이스를 이용해서 Memory기반에서 JDBC, JDBC Templete, JPA 순으로 다형성을 이용하여 구현하는 방법을 배웠으나, 저는 JPA만 가지고 구현하고 테스트 코드까지 정리해보겠습니다. 도메인 만들기 도메인은 아마도 MVC 모델에서 M에 해당하는 부분이 아닐까 추측해봅니다. 이 도메인은 우리가 다룰 데이터의 자료형이라고 생각하시면 됩니다. 저장할때도 Member 객체를 만들어서 저장할 것이고, 사용할때도 Memeber 객체를 이용하여 사용할 것입니다. JPA 관련 설정 @Entity: DB 테이블을 매핑 @Id: 이것을 pk.. 프로그래밍사업/사이드 프로젝트 2022. 11. 14.
[스프링 부트 + JPA + MySQL] 간단한 회원 관리 예제로 알아보는 스프링부트 -1탄 DB 설정편 스프링 부트, JPA, MySQL 사용법 정리 겸 김영한's 스프링 입문 강의 후기 기본적인 자바 문법 공부가 끝나가던 중 문법 공부만하는 것은 공부에 도움이 별로 안된다는 것을 파이썬을 공부하면서 느꼈기 때문에 요새 스프링을 공부하고 있습니다. 공부 교재는 인프런의 김영한님이 무료로 공개하신 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의'를 듣고 제 머릿속에 남기기 위해 정리해보고자 합니다. '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의'는 깊이 있는 내용보다는 가볍게 작은 프로젝트를 구현해보면서 스프링에대한 전반적인 이해와 많은 흥미를 유발하는 강의인것 같습니다. 강의 시간도 제일 긴것이 20분이이고 대부분 10분 내외로 중간 중간 .. 프로그래밍사업/사이드 프로젝트 2022. 11. 14.
[교대근무 관리프로그램] 관리프로그램 구현을 위한 FASTAPI - CRUD편- 월별, 연도별 데이터만 가져오기, 요일 구분하기 , in 사용법 이번 프로젝트에서 백엔드로는 FASTAPI를 사용하였습니다. CRUD를 구현을 위해 저는 SQLALchemy를 사용하여 연도와 월을 입력하면 해당 연도의 그 월의 자료만 가져올 수있는 기능(extract)과 날짜를 입력하면 요일(dayofweek,weekday )을 구분하는 기능 구현이 필요하였습니다. 아울러 or 대신 카테고리 데이터 유무를 판단할 수있는 in사용법도 알아보겠습니다. 요일 구분하는 기능 우선 쉬운 요일 구분하는 기능부터 알아보겠습니다. 요일을 구분하는 함수는 여러가지가 있지만 요일을 숫자로 구분하고 있습니다. 파이썬 datetime의 요일구분 파이썬의 datetime 라이브러리의 date.weekday(날짜) 함수에서는 월=0, 화=1로 구분하고 있습니다. from datetime im.. 프로그래밍사업/사이드 프로젝트 2022. 10. 4.
[교대근무 관리프로그램] 파이썬으로 교대근무 스케쥴표 엑셀로 저장하기 openpyxl로 스케쥴표를 엑셀로 저장하기 파이썬으로 엑셀을 사용하려면 openpyxl를 사용해야 합니다. openpyxl 기본 사용법, 딕셔너리의 키와 값을 바꾸는 방법 for문 안에 if없이 조건 사용하는 방법입니다. 기본 사용법 1. 워크북은 생성한다. wb = load_workboo(파일명) 2. 워크시트 객체를 생성한다. ws = wb["시트명"] 3. 셀에 값을 입력한다. ws.cell(row=1, column=1,value="A1") 4. 엑셀파일로 저장한다. wb.save(파일명) 물론 위에 방법 말고도 여러가지 방법이 있지만 제가 선택한 방법은 위에 방법입니다. 일단 이것에 앞서 저는 fastapi와 mysql을 이용해서 날짜별로 근무조를 입력해놓았습니다. 9월 1일을 예로 들면 주간 .. 프로그래밍사업/사이드 프로젝트 2022. 10. 3.
[교대근무 관리프로그램] 파이썬으로 교대근무 관리 시스템 만들어 보기 파이썬으로 교대근무 관리프로그램 만들기 프로젝트 왠만한 큰 기업들은 아마도 이미 교대근무 관련 시스템이 있을것이라 생각된다. 하지만 그렇지 못한 회사도 있기 마련... 그동안 쌓은 나의 프로그래밍 지식을 총 동원하여 교대근무 관리 시스템을 만들어 보았다. 물론 막 엄청나게 세련된 디자인과 기능을 가진 프로그램은 아니지만 지금 당장 필요한 기능들은 한 90%정도는 구현해보았습니다. 이번 포스팅에서는 A-Z까지 기능 구현을 어떻게 하는지 보다는 이 프로젝트를 하면서 제가 얻은 지식을 정리하는 시간을 가진다는 의미로 작성하였습니다. 프로젝트를 시작하게 된 계기 어쩌다보니 갑자기 교대근무의 시간외, 스케쥴표 등을 관리하는 업무를 맡게되면서 이 프로젝트를 시작하게 되었습니다. 일단 프로젝트 시작에 앞서 어떤 업무.. 프로그래밍사업/사이드 프로젝트 2022. 10. 3.
[직장인이 알아두면 좋은 파이썬] 정규표현식을 사용해서 금액(1000원) 중 숫자만 뽑아내기 만약 직장에서 보고서나 문서에 나온 금액 찾아야 하는 일이 생긴다면 어떻게 해야 될까요?? 처음부터 끝까지 읽어보면서 찾거나 '원'이라는 글자를 검색하면서 찾을 수도 있습니다. 이런 노가다 작업은 정규표현식 전방탐색을 사용하면 쉽게 해결할 수 있습니다. 철수는 1000원을 가지고 있고 영희는 2000원을 가지고 있습니다. 두 사람은 3000원으로 원숭이 인형을 2개 샀습니다. 위에 예문에서 금액만 뽑아 내기 위해서는 어떻게 해야 될까요?? 긍정형 전방탐색을 사용하면 됩니다. 긍정형 전방탐색 긍정형 전방탐색이란 어떠한 기준 앞에 해당 패턴이 일치하면 리턴하는 방법입니다. 그래서 원을 기준으로 정하기 위해 (?=원) 이라고 하면 원 앞에 있는 패턴만을 추출할수 있습니다. 금액을 추출하기 위해서 \d+을 사용.. 프로그래밍사업/사이드 프로젝트 2022. 10. 3.
[직장인이 알아두면 좋은 파이썬] 정규표현식으로 전화번호 뒷자리를 ####으로 바꾸기 파이썬을 처음 접하는 분들이라면 아마도 점프 투 파이썬이란 책에 대해 알고 계실거라 생각합니다. 이 책은 위키독스라는 사이트를 통해 무료로 공개되어 있어서 우선 이 사이트를 통해 접하고 저처럼 책을 구매하신 분들도 있을것 입니다. 그 중 이 책만의 특징적인 부분은 바로 정규표현식이라는 독특한 문법에 대해 설명하고 있는 책입니다. 이 정규 표현식을 활용하면 주민번호 뒷자리나, 전화번호 뒷자리를 손쉽게 바꿀수 있습니다. 특정한 조건에 맞는 텍스트를 추출하고 바꾸고 하는데 활용할 수 있습니다. 오늘은 전화번호 뒷에 4자리를 ####으로 바꾸는 방법을 소개하고 추후 왜 이렇게 하는지에 대해 설명하도록 하도록 하겠습니다. 전화번호 뒷자리를 ####으로 바꾸기 필요한 라이브러리 import import re 파이썬.. 프로그래밍사업/사이드 프로젝트 2022. 10. 2.
[직장인이 알아두면 좋은 파이썬] openpyxl로 pandas 데이터 프레임 만들기 직장인들이 가장 많이 사용하는 프로그램은 엑셀일 것입니다. 사실 파이썬과 같은 프로그래밍 언어를 모르더라고 엑셀만 잘 쓰면 일하시는데 큰 문제는 없을 것입니다. 하지만 매일 반복되는 작업을 자동화 하기위해 파이썬을 사용하면 정말 평소에 20분 걸리는 일도 5분만에 처리가 가능합니다. 저 역시 파이썬과 sql을 사용해서 매일 반복적으로 하는 일을 자동화 하여 평소 15분 걸리는 일을 1분 안에 처리하고 있습니다. 이처럼 매일 반복되는 일은 자동화를 통해 업무 효율을 극대화 할수 있습니다. 엑셀을 잘 쓰시는 분이시라면 매크로를 사용할 수도 있지만 파이썬을 배우는 여러모로 활용하기 좋기 때문에 파이썬을 하면 공부해보시는 것을 추천드립니다. 그래서 이번에는 파이썬으로 엑셀을 자동화하는데 필요한 라이브러리인 op.. 프로그래밍사업/사이드 프로젝트 2022. 9. 25.