개발/Etc 4

PDFBOX를 활용하여 간단하게 워터마크 붙여보기

PDF 를 생산, 가공하는 자바 라이브러리로 많이 추천되는 것은 ITEXT 지만 GNU 라이센스정책을 적용받기때문에 상용으로 사용하는 것 아니면 추천되지 않는다 (생각보다 비싸다) 가장 좋은 대안은 아파치라이센스를 적용받는 PDF BOX로서 사용방법을 살펴보려고한다. 우선 3가지 파일이 필요하다 1. 테스트용 PDF 파일 2. 워터마크 이미지파일 3. 폰트파일 우선 라이브러리 추가가 필요하다 implementation 'org.apache.pdfbox:pdfbox:2.0.29' 그 후에 준비물들을 불러온다 // 초안파일 File inputPdfFile = new File("C:\\dev\\testfile\\test.pdf"); // 워터파크 이미지파일 File watermarkImageFile = new..

개발/Etc 2023.11.03

함수형 프로그래밍은 왜 사용하는가?

불변성이나 높은수준의 추상화 같은 딱딱한 이야기는 접어두고 꽤나 오래동안 함수형 언어에대한 회의감이 있었습니다. 이론적으로 좋은 것들도 결국 유지보수가 어려워지는 것은 피할 수 없고 그런 의미에서 함수형 프로그래밍은 결함 투성이로 보였습니다. 그러나 최근에 함수형 프로그래밍에 대한 인식이 바뀌기 시작했습니다. 여전히 유지보수와 직관적이지 않은 방식에 대해서 회의적인 시각도 있지만 일단 생산성이 뛰어나다는건 부정하기 힘든 장점입니다. 이 생산성이라는 부분에대해 예전에는 이론적으로 알고있었는데 사용을 하면할수록 생각의 흐름이 끊기지 않는다는 차원의 생산성이 좋아지기에 절차지향적 혹은 객체지향적 관점에서는 비교불가한 장점입니다. 결국 프로그래밍이란건 함수를 중심으로 돌아가게 되어있고 함수에 대한 추상화가 얼마..

개발/Etc 2023.07.14

[BrainStorm] 새로운 Git 전략에대한 고찰

GitFlow 전략을 이해하고 사용하기 전부터 Git을 사용하고 있었는데요 그때를 생각하면 마치 SVN처럼 Git을 사용하며 Git은 commit과 push가 나눠져있어서 좋아라고 하던 과거가 떠오르네요 적지않은 시간동안 Git Flow를 사용하며 개인적으로 느꼈던 감정과 보완되면 좋을만한 점에대해 이야기해보려고 합니다. 1. GitFlow 전략은 무엇인가? Git은 브랜치기반의 버전관리 시스템이기에 브런치를 어떻게 생성하고 병합할지에 대한 전략이 필요합니다. 그런 전략들 중 GithubFlow와 함께 가장 많이 사용되는 전략이며 업계의 표준으로 자리잡고 있습니다. 2. 장점 티켓단위로 브런치를 생성할 때 충돌을 최소화하며 독립적인 환경을 구축할 수 있습니다. 또한 개발서버와 운영서버의 배포시에도 전략적..

개발/Etc 2023.06.19

완벽한 언어 RUST

누군가에게 왜 러스트를 좋아하세요라고 질문을 받는다면 간략하게 대답할 수 있는 말은 "러스트는 완벽하니까요" 라는 표현말고는 달리 생각나는 게 없습니다. 프로그래밍을 위해 필요한 언어는 힙영역의 관리 부분에서 자신의 결함을 노출하고 그걸 감수하면서 사용하는 언어가 99%였습니다 C, C++ 을 대표로 힙영역을 개발자가 컨트롤 할수 있는 언어가 있고 Java, C#, Python 을 대표로 힙영역을 가비지컬렉터가 대신 처리해주는 언어로 세상은 양분되어 있었습니다. 그러나 Rust는 제 3의 길을 걷는 언어입니다. 오랜기간 양분되어 각자의 길을 걷고있던 프로그래머들이 이 러스트에 열광하는 이유도 여기에 있습니다. 매니지드언어 개발자들은 인간의 실수를 늘 두려워하고 언매니지먼드언어 개발자들은 자신들이 컨트롤하..

개발/Etc 2022.12.24