일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

분류 전체보기 38

Java heap memory leak - JNI

요 근래 이직 준비를 하면서 바빠 블로그를 신경 쓰지 못했는데, 운 좋게 서비스 회사에 이직을 하게 돼서 기쁜 마음으로 다시 블로그를 켜게 되었다. 무슨 주제로 포스팅을 할까 하다가 첫 직장에서 경험했던 업무들 중에 가장 인상 깊었던 일을 리마인드 겸 정리하고 공유하고자 한다. 때는 바야흐로 입사한 지 6개월도 되지 않은 따끈따끈한 신입시절 나는 통합관제 라이선스 모듈 기능을 개발하게 되었고, 라이선스 키를 암호화/복호화하는 모듈을 연동하게 되었다. 연동해야 하는 프로젝트는 Java + Spring Boot로 구성된 서버였고 암/복호화 모듈은 C언어로 구성되어 있었다. 나는 그래서 연동을 위해서 JNI를 처음 써보게 되었다. 일은 여기서 터진다. 나는 C언어도 처음이고 JNI도 처음 써보는데 Java m..

Spring Security Role 도입. Autority 써보기

요즘에 회사생활도 일상생활도 바빠져서 포스팅을 오랫동안 하지 못했는데, 나태해진 나를 반성하고 반성하며 오랜만에 포스팅을 하려고 한다. 포스팅 주제를 생각하다가 과거에 API 접근관련하여 Spring Security의 Autority를 사용한 적이 있는데, 최근 회사에서 새로운 서비스를 개발할 때 사용할 수 있을 것 같아서기억을 되새김질할 겸 정리를 해보려고 한다. API 접근 권한은 왜 부여하는 걸까? 'API 보안이 중요하다'라는 말은 많이 들어봤을 것이다. API에 접근 권한을 부여하는 것은 이 보안의 모범사례 중 하나일 뿐이다. 그렇다면 API 보안은 왜 중요할까? 기업은 API를 이용해서 서비스를 연결하고 데이터를 전송하는데 이런 API가 손상, 노출 또는 해킹이 되면 주요한 데이터의 보안 유출..

Programing/Spring 2022.06.20

JPA Dynamic Query (1) - Querydsl 도입기

회사에 SaaS Portal을 개발을 진행한 지 반년이 막 넘어갈 때쯤 일 것이다. 기획과 개발 초기에는 프로젝트 규모가 굉장히 작았기 때문에 순수 Spring Data JPA만을 활용하여 데이터 CRUD 메서드 쿼리를 활용했는데, 규모가 커지면서 테이블 스키마도 복잡해지고, 조회 쿼리가 점점 복잡해지면서 JPA @Query Annotation을 이용하여 JPQL을 사용하는 일이 많아지고 직접 쿼리를 작성하는 일이 많아졌는데, 그러다 보니 스키마가 약간 변경이 될 때마다 수정해야 하는 쿼리들과 로직들이 많아지고 쿼리를 '직접' 쓰다 보니 수정점을 찾기가 힘들어지고 결국엔 수정점을 놓쳐 에러를 많이 내곤 했었다. 그래서 나는 '객체지향 쿼리 언어'인 Querydsl을 도입하게 되었다. 도입에 타당한 근거가..

Programing/Jpa 2022.06.05