Root292 [개발자 책 추천] 쉽게 배워 바로 써먹는 디자인 패턴 객체지향 개발 과정에서 겪는 다양한 이슈를 종합해보면, 각기 다른 문제가 아니라 서로 비슷한 유형의 문제가 됩니다. 개발자들은 서로 자신의 경험을 바탕으로 그 비슷한 유형의 문제들을 각기 다르게 해결해나갔습니다. 이러한 비슷한 유형의 문제를 다르게 해결해 나갈 필요성이 없다고 생각한 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. [MongoDB] MacOs에 MongoDB 설치하기 개발을 진행하며 RDS의 mysql과 mariaDB만 사용했었고 NoSQL을 한 번도 사용해 본 적이 없기 때문에 Java - Spring 공부를 진행하면서 DB를 NoSQL인 MongoDB로 사용해보려 합니다. 때문에 Local 개발환경 구성에 있어 필요한 MongoDB 설치 및 세팅방법을 포스팅하며 학습합니다. 1. Brew Tap을 이용하여 homebrew로 설치 가능한 sortware를 확장시키기 brew search mongodb 명령어로 설치 가능한 mongodb 관련 software를 검색하면 몇 가지 잘 나오지 않는다. brew tap mongodb/brew 명령어를 이용하여 brew에서 설치 가능한 mongodb를 확장시켜준다. 그 이후 brew sarch mongodb 명령어를 실행하면.. ETC/DB 2022. 6. 20. Java로 Apache Kafka Consumer 구독 구현하기 Apache Kafka Consumer를 구독하여 값을 읽어오는 기능을 Java언어로 구현해봅니다. apache.org에서 제공하는 Kafka API문서를 참고하였고, Apache Kafka의 개념을 먼저 학습한 후 예제 코드를 통하여 카프카에 대해 구현해보는 걸 권장합니다. Apache Kafka란? - 아파치 카프카에 대한 학습 대학생 시절에는 프로그래밍 언어를 위주로 공부하였고, 개발자가 되어 4년차가 된 지금, 프로그래밍 언어의 장벽은 낮아졌고 오히려 프로그래밍 아키텍쳐, 디자인 패턴, 파이프라인 구축 등 min-nine.tistory.com kafka 2.6.0 API kafka.apache.org 1. Consumer 데이터 가져오는 예제 코드 및 설명 // Properties 객체를 생성하.. Server Language/Java 2022. 6. 20. IntelliJ에서 Spring Boot 프로젝트 생성 및 실행하기 스프링(Spring)의 설정이 복잡하여 좀 더 쉽게 웹 서비스를 구현할 수 있게 만들어진 스프링 부트(Spring Boot) FrameWork를 사용하여 로컬 환경에서 web 서비스를 구현해 봅니다. IntelliJ에서 보다 쉽게 Spring Project를 생성하게 도와주는데 실제로 사용해보니 정말 간편하여 포스팅합니다. 1. New Project 진입하기 [File] > [New] > [Project]를 통하여 새로운 프로젝트를 생성하는 창을 열어줍니다. 2.Generators 메뉴의 Spring Initializr 활성화 하기 Generators 메뉴의 Spring Initializr를 클릭하여 원하는 언어 및 Build Tool, Location, Project Name, JDK버전 등을 을 설정.. Framework/Spring Boot 2022. 6. 16. [IntelliJ] 인텔리제이(IntelliJ)에서 break point 비활성화 해결방법 인텔리제이(IntelliJ) 에서 디버깅을 진행하던 와중, 브레이크 포인트를 설정하였는데 디버거바에는 표시가 안되는 현상이 발생하였다. [Run] - [show Breakpoints]를 들어가보면 설정한 브레이크포인트가 잘 표시되어있음에도 불구하고, application은 잘 실행되고 있는데 디버거상태바에 아무것도 표시가 안되고, Resume Program도 비활성화 처리가 되어있다. 이럴때 [File] - [Invalidate Caches / Restart] 를 실행하여 IntelliJ를 재시작 후 디버깅을 재실행 하면 정상적으로 작동한다. ETC/개발 IDE 설정 2022. 6. 10. [Gradle] Gradle로 Java Application 생성 및 실행하기 Gradle 7.4.2v 을 사용하여 앞으로 Test code를 작성할 Java Application Project를 만들어 봅니다. 1. 프로젝트 폴더 생성 및 gradle init 명령어 실행 $ mkdir testGradleProject $ cd testGradleProject $ gradle init 2. Project Type 선택란으로 application 환경을 셋팅하기 위해 2번 진행 3. Project Language 선택란으로 Java 3번 혹은 default enter 진행 4. Library를 포함유무 선택란으로 본인은 함께 설치하기 때문에 yes 진행 5. Build Script 언어 선택란으로 설정은 default로 진행 6. Project name 및 packange 등 설정은.. Server Language/Java 2022. 6. 8. 이전 1 ··· 7 8 9 10 11 12 13 ··· 25 다음