전체 글289 Java로 Firebase Cloude Message (Application Push) 구현하기 Firebase Cloude Message(이하 FCM)을 구현하여 Web 및 App Device에 Push Message를 보내는 기능을 구현해봅니다. FCM 구현에는 송수신을 위한 두 가지 주요 구성요소가 필요합니다. Firebase용 Cloud Functions 또는 앱 서버와 같이 메시지를 작성, 타겟팅, 전송할 수 있는 신뢰할 수 있는 환경 해당 플랫폼별 전송 서비스를 통해 메시지를 수신하는 Apple, Android 또는 웹(자바스크립트) 클라이언트 앱 1. Firebase Admin SDK 의존성 추가하기 Firebase Admin SDK를 사용하기 위해서는 해당 서버에 Java 8 이상이 설치되어 있어야 합니다. // Gradle - build.gradle dependencies { imp.. Server Language/Java 2022. 7. 19. [우이동계곡맛집] 우이동 계곡 분위기 맛집 산울림 안녕하세요? 민규입니다. 초복이 돌아왔고, 여름의 무더위를 함께 피하기 위해 서울에서 뚜벅이로 갈 수 있는 계곡 "우이동"을 방문했었습니다. 1차로 닭백숙과 도토리묵으로 든든히 배를 채우고 2차로 오게 된 [우이동 계곡 산울림] 리뷰를 시작합니다😀 입구부터 05학번 is back 느낌이 물씬 풍기는 우이동 계곡 산울림은 우이신설역 북한산 우이역 1번 출구 쪽 우이령길 입구에서 도보로 15분 정도 걸렸습니다. 처음부터 본론만 이야기하자면, 주말에 가실 거면 자차는 포기하시길 권장드립니다. 입/출구가 1개로 통합되어 있기 때문에 밖으로 나가는 차량들 평균 1시간은 소요된다고 합니다. 저는 강북-도봉구 라인에 거주하고 있는데, 집에서 택시 타고 8200원 나왔습니다:) 산울림은 계곡 바로 옆에 자리하고 있는 .. 생활 로그/맛집 추천 2022. 7. 18. MacOS 개발 환경 WindowsOS에서 구축하기 맥북으로 개발을 시작한 지 어느덧 6개월. MacOS 개발 환경에 익숙해져서 그런지 Windows OS에서 개발을 진행하기 여간 적응되지 않았습니다. VPN 문제로 인해 강제적으로 Windows 환경에 익숙해져야 했기 때문에 Windows에서 최대한 MacOS 느낌을 살리고자 노력했습니다. 1. Windows 11 Update 하기 macOS의 장점중 하나인 트랙패드를 활용한 분할 데스크톱 기능이 Windows 11에서 가능하게 되었습니다. 별도의 트랙패드가 없는 데스크톱에서 작업할 때에는 윈도우 11 환경에서 [ctrl + windows + 방향키] 조합으로 사용이 가능합니다. 아래처럼 새로운 데스크톱을 생성하여 프로그램을 띄운 후 위의 조합으로 자유롭게 이동하며 사용합니다. 2. MacOS의 터미널 .. ETC/개발 IDE 설정 2022. 7. 15. [쉽게 따라하는 AWS] 10. Gradle - SpringBoot 프로젝트 EC2에 배포하기 로컬에서 Gradle Build Tool 및 SpringBoot Framwork 를 사용하여 만든 웹 사이트를 AWS Ec2 인스턴스에 배포하여 실제로 서비스 되게 만들어 봅니다. 로컬에서 Gradle을 활용한 Springboot 프로젝트를 생성하는 방법은 아래 두개의 게시글을 참고하세요. [참고] [Gradle] Gradle로 Java Application 생성 및 실행하기 Gradle 7.4.2v 을 사용하여 앞으로 Test code를 작성할 Java Application Project를 만들어 봅니다. 1. 프로젝트 폴더 생성 및 gradle init 명령어 실행 $ mkdir testGradleProject $ cd testGradleProject $ grad.. min-nine.tistory.c.. Infrastructure/AWS 2022. 7. 15. [쉽게 따라하는 AWS] 09. AWS EC2 인스턴스 도메인 적용하기 1. 등록할 EC2 인스턴스 Public IPv4 확인 및 복사 2. Route53 호스팅 영역 생성하기 도메인 이름에 본인이 구매한 도메인 입력 퍼블릭 호스팅 영역 선택 3. 생성된 호스팅 영역에 레코드 생성 www 등 2차 도메인 붙이고 싶으면 레코드 이름에 입력(레코드 이름은 안써도 무방.) 레코드 유형 A-IPv4 설정 값에 EC2 인스턴스의 퍼블릭 IPv4 입력 4. 호스팅 영역의 NS유형 값/트래픽 라우팅 대상 4개를 도메인 구매한 사이트의 네임서버 변경을 통해 수정 Cafe24, 가비아 등 도메인 구매 사이트의 도메인 관리에 들어가면 네임서버 변경란이 존재함. AWS 호스팅 영역 세부정보 > 레코드 > NS유형의 값/트래픽 라우팅 대상에 있는 4개의 값을 네임서버로 저장. 5. EC2 인스턴.. Infrastructure/AWS 2022. 7. 14. [Model] 같은 형태에 대한 여러개의 테이블이 존재할 때, 1개의 Model로 사용하기 version 2.0 이전에 하나의 DB 스키마 아래에 테이블 앞에 글자만 다르고, 모든 형태가 일치(칼럼, 키, 색인 등 모든 게 일치)하는 경우에 Laravel Model에서 1개의 Model로 여러 테이블에 동적으로 바인딩해서 사용하는 방법을 포스팅 한 적이 있다. 다만 아쉬웠던 게 Laravel의 핵심 기술인 Eloquent ORM의 relastionships를 사용할 수 없는 단점이 존재하였고, 이 단점을 어떻게 해결할 수 있을지 고민하여 그 해답을 찾았다. [상황] [동일한 DB 스키마] - 상품 관련 테이블 : A_Products , B_Products, C_Products..... - 주문 관련 테이블 : A_Orders, B_Orders, C_Orders..... [이전 글] [Model] 같은 형태에 대한 .. Framework/Laravel 2022. 7. 12. [Laravel] Transaction 작동 안되는 현상 해결 라라 벨에서는 데이터베이스 트랜잭션 내에서 일련의 작업을 실행하기 위해 DB파사드에서 제공하는 transaction 메서드를 사용할 수 있습니다. 이는 Eloquent ORM, Query Builder 모두에 대한 트랜젝션을 제어하는데 2가지 방식이 있습니다. 1. 클로저가 성공적으로 실행되면 트랜잭션을 자동으로 커밋하게 하고, 실패하면 예외가 발생하며 자동 롤백되는 아래와 같은 자동 형태의 사용 방식 ## 자동 형식의 트랜잭션 use Illuminate\Support\Facades\DB; DB::transaction(function () { DB::update('update users set votes = 1'); DB::delete('delete from posts'); }); 2. 수동으로 트랜잭션.. Framework/Laravel 2022. 7. 12. [개발자 책 추천] 쉽게 배워 바로 써먹는 디자인 패턴 객체지향 개발 과정에서 겪는 다양한 이슈를 종합해보면, 각기 다른 문제가 아니라 서로 비슷한 유형의 문제가 됩니다. 개발자들은 서로 자신의 경험을 바탕으로 그 비슷한 유형의 문제들을 각기 다르게 해결해나갔습니다. 이러한 비슷한 유형의 문제를 다르게 해결해 나갈 필요성이 없다고 생각한 GoF는 객체지향 설계 시 발생하는 문제점을 목록화하여 24가지 패턴으로 정리하였고 이를 오늘날 디자인 패턴(Design Patterns)이라고 부르게 되었고, 이는 디자인 패턴 24가지를 학습한다면 소프트웨어 설계에 있어서 공통된 문제들에 대하여 표준적인 해법과 직영 법으로 접근이 쉬워짐을 뜻 하기에 우리는 디자인 패턴을 배워고 이해해야 합니다. 지금 추천하는 책의 예제는 PHP 언어를 기반으로 이루어져 있기 때문에 Jav.. 책/IT 2022. 7. 11. [재미있게 읽은 책] 악당의 명언 해가 바뀌면 가장 먼저 하는 일은 버킷리스트(Bucket List)를 최신화시키는 것이다. 다이어트, 금연, 월급의 반은 적금하기 등 수많은 리스트들을 적는데 그중 꼭 껴있지만 지켜지지 않는 항목 '한 달에 책 1권 읽기'. 이제서라도 지키기 위해 최근에 책을 읽고 있고 그중, 재미있게 읽은 책을 추천하려고 글을 쓴다. 나는 자기 계발서를 그다지 좋아하지 않는다. 누구나 다 알고 있는 내용을 자신의 지혜인 것처럼 조언의 형식으로 글을 풀어나가 더 노력할 수 있는 독자들에게 '넌 충분히 열심히 했어'라는 자기 위로를 하게 하기 때문이다. 스스로 위로하는 것만큼 나태해지는 마약은 세상에 없다고 생각하기 때문에 몇몇 자기 계발서는 '마음의 마약'이라고 까지 생각이 되었다. 그럼에도 굳이 자기 계발서를 읽는 이.. 책/자기계발서 2022. 7. 11. [Laravel] Global Variable / Constant / Function 정의 및 사용에 대한 고찰 Laravel Framework에서 global 변수, 상수, 함수에 대한 정의 및 사용방법은 무궁무진하다. global 전용 Provider를 만들어 라라벨 가동 시 전역으로 사용하게 할 수도 있고, Traits를 사용하여 사용할 수도 있고, 별도의 Service 폴더를 만들어 Class들을 모아놓고 new 연산자를 통해 사용할 수도 있고, Basic Controller를 상속받은 Function(혹은 Variable, Constant) Controller를 만들어서 extends 하여 사용할 수도 있고, Helpers밑에 globalFuncgtion.php 파일을 만들어 composer.json에 autoload 하여 사용할 수도 있다. 무엇이 가장 좋은 방법인가? 에 대하여 생각해봤는데 정답은 없었.. Framework/Laravel 2022. 7. 8. Git 사용중에 .gitignore 적용 안되는 현상 해결 Git을 사용하여 소스 관리를 하며 프로젝트를 진행하던 와중 ". gitignore"에 등록한. env파일이 git repository에 commit 되는 현상이 나타났습니다. 이때는 프로젝트 내부의. git cache가 문제가 되는 것이기 때문에 git cache 삭제 후 프로젝트 자체를 다시 커밋해야 합니다. # git 프로젝트 디렉토리로 이동 $ cd your/git/project # git cache 삭제 $ git rm -r --cached . $ git add . $ git commit -m "git cached remove and reCommit" Infrastructure/Git 2022. 7. 8. [MacOs] M1칩 PHPStorm Xdebug 연동 및 사용법 M1 Pro칩 MacBook에서 Local환경으로 PHP 개발을 진행할 때, PHPStorm에 Xdebug를 연동하여 사용해봅니다. 1. php version 및 macOS 버전 확인 ## PHP 버젼 확인 $ php --version ## PHP에 맞는 MacOS 확인 $ file'which php' php --version 명령어로 확인하면 현재 설치된 PHP에 xDebug가 확장되어 있는지 확인이 가능합니다. 아래와 같이 "with Xdebug" 항목이 없으면 확장되지 않은 상태임으로 확장이 필요합니다. [file `which php`] 명령어로 현재 설치되어있는 php가 어떤 프로세스에 적합한지 확인합니다. 아래의 사진은 arm64 프로세스에 적합한 php가 깔려있다는 예제. 2. 각자에 맞는 a.. ETC/개발 IDE 설정 2022. 7. 6. PHP로 Data 암호화 및 복호화 하기 - AES256 서버에서 동작하는 Application은 Java 기반으로, 그 데이터와 연동되는 다른 API 기능은 PHP로 개발을 진행하는 와중에 두 사이에서 같은 데이터를 암/복호화해서 사용하는 상황이 발생하였습니다. 처음엔 Laravel Framework의 Crypt Facades를 사용하여 라라 벨에서만 복호화를 진행하였는데, Java Application에서 암호화시킨 데이터를 같은 맥락으로 Laravel Framework에서 복호화시켜 사용해야 함에 따라 기본 Laravel App Key를 사용했던 Crtpt Facades를 대체하며 같이 Java에서 사용할 AES256 알고리즘 형태의 암복호화 소스가 필요해졌고, PHP는 아래 형태로 개발을 진행하게 되었습니다. [연관글] Java로 Data 암호화 및 복.. Server Language/PHP 2022. 6. 27. Java로 Data 암호화 및 복호화 하기 - AES256 서버에서 동작하는 Application은 Java 기반으로, 그 데이터와 연동되는 다른 API 기능은 PHP로 개발을 진행하는 와중에 두 사이에서 같은 데이터를 암/복호화해서 사용하는 상황이 발생하였습니다. 처음엔 Laravel Framework의 Crypt Facades를 사용하여 라라 벨에서만 복호화를 진행하였는데, Java Application에서 암호화시킨 데이터를 같은 맥락으로 Laravel Framework에서 복호화시켜 사용해야 함에 따라 기본 Laravel App Key를 사용했던 Crtpt Facades를 대체하며 같이 Java에서 사용할 AES256 알고리즘 형태의 암복호화 소스가 필요해졌고, Java는 아래 형태로 개발을 진행하게 되었습니다. [연관글] PHP로 Data 암호화 및 복.. Server Language/Java 2022. 6. 27. 이전 1 ··· 5 6 7 8 9 10 11 ··· 21 다음