Google Chart API로 QR코드 생성하기
·
ETC
구글 차트 api를 사용해 QR코드를 생성하는 방법에 대해 정리한 글입니다. Google Chart API QR 코드를 생성해주는 API는 꽤 많은데요. 저는 구글에서 제공하는 API로 QR코드를 생성하겠습니다. 다음 링크는 구글 차트에서 제공하는 QR code API 공식 문서입니다. 이 글에서는 다음 문서를 좀 더 요약하여 설명하고 있습니다. https://developers.google.com/chart/infographics/docs/qr_codes?hl=ko QR 코드 | Infographics | Google for Developers 경고: 이 API는 지원 중단되었습니다. 대신 활발하게 유지관리되는 Google 차트 API를 사용하세요. 자세한 내용은 지원 중단 정책을 참고하세요. 이 페이..
[CS] MSA 아키텍처 스타일이 뭘까?
·
CS
MSA 아키텍처 스타일로 프로젝트를 진행하게 되어 얕은 개념을 공부한 내용을 정리한 글입니다! MSA와 모노리틱 MSA(MicroServicearchitecture)는 서비스를 기능별로 작게 나누고, 그 독립된 서비스를 연결하는 구조하고 합니다. 이러한 구조는 시스템 전체의 중단 없이 필요한 부분만 업데이트하고 배포할 수 있다는 장점이 있습니다. msa가 도입되기 이전에는 모노리틱 아키텍처 스타일로 애플리케이션을 개발하였습니다. 모노리틱 서비스란 소프트웨어의 모든 구성 요소가 한 프로젝트에 통합되어 잇는 형태입니다. 따라 배포 및 테스트도 하나의 애플리케이션만 하면 되니 개발하는데에 편리하고, 운영하고 관리하는데 편합니다. 하지만 시스템이 확장되고, 여러 컴포넌트들이 추가되거나 수정되어야 하는 상황에서 ..
[AWS] EC2 인스턴스와 연결하여 RDS로 DB 배포하기
·
Deploy/AWS
안녕하세요! 이 글에서는 RDS가 무엇인지, 또 EC2 인스턴스와 RDS를 연동하는 방법에 대해 소개하고 있습니다. RDS란? RDS(Relational Database Service)란 AWS클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장을 할 수 있는 서비스입니다. 인스턴스 정보 확인 먼저 연동하고자 하는 인스턴스의 정보를 인스턴스 요약 화면에서 확인하겠습니다. VPC ID, 서브넷 ID를 복사해 메모장 등에 메모하시길 권유드립니다. 밑에 보안 탭에서 보안 그룹도 복사하여 메모해두세요. 보안그룹 생성 AWS EC2에서 네트워크 및 보안에서 보안그룹을 클릭해 주세요. 우측 상단의 보안 그룹 생성을 클릭해 주세요. 이름을 입력하고 VPC 정보가 연동하고자 하는 EC2인스턴스와 일치하는지 ..
[AWS] EC2로 node.js 웹 서버 배포하기 / Nodejs SyntaxError: Unexpected token '(' 에러 해결
·
Deploy/AWS
나중에 배포하는 방법을 잊어버릴까봐 기록하는 글입니다. 참고로 저는 맥 운영체제를 사용하고 있고, 이 글을 보시는 분들은 aws 회원가입이 완료된 상태라고 가정하고 진행하도록 하겠습니다. 웹 서버 배포하기 인스턴스 생성하기 콘솔로 로그인 후, 검색창에 EC2를 검색하여 서비스에 있는 EC2대시보드에 들어갑니다. 리전이 자신과 가장 가까운 지역으로 설정되어 있는 것을 확인하고, 중앙의 주황색 인스턴스 시작 버튼을 눌러주세요. 이름에 웹 서버 이름을 작성하시고, Quick Start에 우분투를 선택합니다. 우분투를 선택한 이유는 프리티어 계정도 사용할 수 있기 때문입니다. 밑에 키 페어 로그인에서 새로운 키 페어 만들기를 선택하고, 키 페어 이름을 지정 후 만들어주세요. 그리고 나서 아무 설정도 건드리지 않..
[AndroidStudio] Unable to match the desired swap behavior 에러 해결하기
·
IDE/Android Studio
배경 안드로이드 프로젝트를 하던 중 retrofit에 접속하거나, 웹 뷰에 연결할 때 로그캣에서 다음과 같은 에러 메세지가 뜨고 네트워크 관련된 모든 것들이 실행조차 안되었습니다 🥲 OpenGLRenderer com.gogit.gogit_app E Unable to match the desired swap behavior. 해결하고자 구글링을 해보니 저랑은 너무 다른 상황들이었고, 글들이 많지 않았습니다. 하지만 찾은 글들에서 공통적으로 언급하는 것이 sdk문제라는 것을 알게되었습니다 해결 방법 저는 애뮬레이터를 새로 만드는 방법을 택했습니다. 아마 제가 사용하는 것들에 맞지 않게 너무 낮은 sdk로 설정해서 사용하고 있었던 것 같습니다... 이렇게 세팅하니 잘 돌아가더군요 🥲 저 에러 때문에 저는 며칠..
[React][Axios] CORS에러 발생 이유와 proxy를 통한 해결
·
Framework/React
CORS란? CORS (Cross-Origin Resource Sharing) Policy(정책)는 웹 브라우저에서 실행되는 웹 애플리케이션들이 다른 도메인(origin)에 있는 리소스에 접근할 수 있는 권한을 부여하거나 제한하는 보안 정책입니다. 위 에러는 CORS 에러 입니다. 아마 다들 한 번 쯤은 봤을 에러인데요. 이 글에서는 왜 이러한 에러가 발생하는지, 그리고 어떻게 해결하는 지에 대해 아주아주 간략하게 정리해 보겠습니다. CORS에 대한 개념을 알아보기 위해 이 글을 보시는 것은 추천드리지 않습니다 🥲 다소 생략된 부분이 있다고 느끼실 수 있어요! CORS에러가 발생하는 이유 앞서 말했듯이 CORS는 다른 도메인에 있는 리소스에 접근하는 것과 관련이 있습니다. 여기서 다른 도메인(origin..
[AndroidStudio][FireBase] SHA-1 디지털 지문 발급받기 / zsh: permission denied: ./gradlew 해결
·
IDE/Android Studio
배경 https://firebase.google.com/docs/auth/android/github-auth?hl=ko Android에서 GitHub를 사용하여 인증하기 | Firebase Authentication Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 Android에서 GitHub를 사용하여 인증하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분 firebase.google.com 위 문서를 참고하여 깃허브 oauth 로그인을 구현하고자 하는데 제 애플리케이션에 SHA-1 등록을 하지 않아서 방법을 찾아보고 있었습니다 . . . 잘 알려진 방법인 터미널에 ./gradlew signingReport 를 입력하는 방법..
[JavaScript] Window.lacalStorage와 Window.sessionStorage
·
Programming Language/JavaScript
localStorage와 sessionStorage 로컬 스토리지와 세션 스토리지는 자바 스크립트에서 사용되는 웹 스토리지 옵션입니다. 이 두 가지 기능은 웹 브라우저에서 키와 값으로 이루어진 데이터를 저장하는 데에 사용됩니다. 쿠키와의 차이점 웹 브라우저에 데이터를 저장하는 것이 쿠키와 유사하다고 생각할 수 있지만 다음과 같은 차이점이 존재합니다. 쿠키와 달리 네트워크 요청 시 서버로 전송되지 않는다 개발자가 브라우저 내 웹 스토리지 구성 방식을 설정할 수 있다 쿠키와 달리 HTTP 헤더를 통해 객체를 조작할 수 없다 프로토콜과 서브 도메인이 다르면 데이터에 접근할 수 없다 제공하는 프로퍼티와 메서드 공통 프로퍼티 localStorage.length 및 sessionStorage.length: 스토리지..
[HTML] 웹페이지 파비콘 등록하기
·
ETC
파비콘은 웹페이지 아이콘이라고 생각하면 됩니다. 크롬의 경우 북마크를 했을 때 웹페이지의 아이콘과 웹페이지 이름이 같이 보이는데, 이 아이콘을 파비콘이라고 합니다. 프로젝트를 만들 때 파비콘을 설정해야 안심이 되더라고요... 그냥 지구 모양은 절대 못봐줌 그래서!! 저도 할 때마다 맨날 어떻게 하는지 까먹는 파비콘 등록하기에 대해 포스팅을 합니다. ico 이미지 준비 파비콘 아이콘의 확장자는 ico가 적합합니다. https://www.hipdf.com/kr/png-to-ico PNG를 ICO로 변환 - PNG에서 아이콘 생성하기 - HiPDF PNG에서 빠르게 아이콘 파일을 생성합니다. 16x16에서 256x256까지 아이콘 사이즈 지정이 가능합니다. 설치 또는 가입이 필요하지 않습니다. PNG를 ICO..
[Spring] Rest Template란?
·
Framework/SpringBoot
RestTemplate RestTemplate는 스프링 프레임워크가 제공하는 클래스로, RESTful 웹 서비스와 상호작용 하는 과정을 단순화하여 편리하게 API를 호출할 수 있습니다. RestTemplate의 동작 원리 어플리케이션이 RestTemplate를 생성합니다. (URI, HTTP 메서드 등 헤더를 담아서 요청함) RestTemplaterk HttpMessageConverter를 사용하여 requestEntity를 요청 메세지로 변환합니다. RestTemplate가 ClientHttpRequestFactory로 부터 ClientHttpRequest를 가져와서 요청을 보냅니다. ClientHttpRequest는 요청 메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신합니다. RestTempla..
[Spring] Spring에서 깃허브 OAuth 로그인하기
·
Framework/SpringBoot
OAuth 앱 등록하기 깃허브에서 Setting > Developer Setting > OAuth Apps > Register a new application 으로 이동하여 OAuth 로그인을 할 앱을 등록해줍니다. 저는 현재 서버를 배포하지 않고 로컬에서 작업하고 있기 때문에 Hompage URL은 http://localhost:8080으로 해줬습니다. Authorization callback URL에는 로그인 후 돌아갈 즉 redirect url을 입력해주세요 토큰 생성하기 Register application을 누르고 바로 다음 화면에서 Generate a new client secret을 클릭하면 토큰이 발급됩니다. 발급받은 토큰은 Spring에서 사용되니 어딘가에 복사 해놓으세요 Spring 설..
[Android Studio] 인텐트 알아보기
·
IDE/Android Studio
인텐트란 하나의 액티비티에서 다른 액티비티로 전환하기 위한 도구입니다. 인텐트를 사용하여 다른 액티비티에 전달해야 하는 값을 넘겨줄 수도 있습니다. 인텐트는 크게 명시적 인텐트와 암시적 인텐트가 있습니다. 명시적 인텐트 명시적 인텐는 어떤 액티비티로 넘어갈지 명확하게 아는 상태에서 사용합니다. 예를들어 MainActivity에서 버튼을 누르면 TargetActivity로 넘어가는 상황에서, 버튼을 누르면 무조건 TargetActivity 로 넘어가기 때문에 명시적 인텐트를 사용합니다. val intent = Intent(this, TargetActivity::class.java) startActivity(intent) Intent의 첫 번째 인자는 context, 두 번째 인자는 클래스 파일 입니다. s..