분류 전체보기(313)
-
[AWS] AWS 팁
AWS 팁 보안 MFA를 활성화시켜 해킹위협을 방지하고 보안을 강화합니다. Google Authentication은 클라우드에서 관리를 못하기 때문에 폰을 분실하면 OTP로 다시 못들어갈 수 있습니다. Authy나 1Password를 추천합니다. 프리티어 사용량 확인 결제 대시보드 > 기본설정에서 AWS 프리티어 사용량에 근접했을 때 알림을 받을 수 있습니다. 결제 CloudWatch 경보생성 일정금액(임계치)를 넘어설 때 알림을 받게 CloudWatch 경보를 생성할 수 있습니다. 그러기 위해선 SNS(Simple Notification Service)를 생성해줘야 합니다. 테스트 전/후 비용확인 AWS pricing calculator나 vpc pricing 페이지를 활용해 테스트 전 예상비용을 확인..
2021.10.27 -
[Gradle] Build Maven에서 Gradle 이관시키기
Build Maven에서 Gradle 이관시키기 작업: 예전 토이 프로젝트 리팩토링 서버 기술스택: Java, Spring, MySql 사실 대형 프로젝트가 아니라서 Maven에서 Gradle로 이전시킬 때 일일이 dependency를 기입해도 됩니다. 그렇지만 Gradle의 장점인 Customizing을 사용해보려 Gradle Docs를 보다보니 Maven to Gradle Migration에 대한 가이드를 찾게 되었습니다. 찾았으면 적용시켜 봐야하지 않겠습니까? 그렇게 Docs를 따라 build.scan을 이용해 이관을 진행했습니다. 그리고 Gradle은 Docs 퀄리티가 상당히 높다는 걸 깨달았습니다. 꼭 한번 읽어본다면 build.gradle을 충분히 잘 관리할 수 있을겁니다. 참고자료 Gradl..
2021.10.24 -
[강의] DevOps 엔지니어 성장전략
DevOps 엔지니어 성장전략 DevOps 로드맵 아래 참고자료 roadmap - devops 2021을 참고하시면 됩니다. 하나의 언어를 알아야 하고 모니터링 솔루션, 오케스트레이션 컨테이너, 클라우드 등 여러 기술분야가 로드맵에 나타나있지만 전문성은 한 부분을 깊게 팔 때 생기기 때문에 모든 부분을 한다기보다 몇 가지 분야를 설정해 깊게 파는 것을 추천합니다. DevOps 엔지니어 성장 기능에 그치면 안됩니다! 안정화, 자동화, 보안 그리고 성능까지 책임지는 역할이 DevOps 엔지니어 입니다. 기술을 선택해야 할 땐 커뮤니티 활성화(== 사용자 수)와 비전, 감당 비용을 고려해야 합니다. DevOps 엔지니어는 장애가 발생했을 때 해결하고 끝내선 안됩니다. 근본원인을 찾아 장애기록을 남기는 습관을 ..
2021.10.23 -
[JPA] 복합 식별키를 update 해야할 때
복합 식별키를 update 해야할 때 A, C가 다대다로 연결되어 있고 B는 두 엔티티를 매핑해주는 매핑 엔티티 입니다. 이 때 한 A 엔티티의 데이터가 연관된 C 엔티티 데이터와의 관계를 끊고, 다른 C 엔티티 데이터에 관계를 맺는다 하면(말은 어렵지만 fk가 바뀐다고 이해하시면 됩니다) 기존 복합키는 삭제해야할까요? 실무에서 직접 나온 고민입니다. 평소대로라면 DB 데이터 안정성과 로그용도로 DeletedTime을 남기고 실제 row를 삭제하진 않았지만, 다대다 관계의 매핑 테이블로만 사용되는 테이블의 데이터를 남겨둘 필요가 없다라는 관점에서 생각해봤습니다. 먼저 실제 row를 삭제하지 않는 이유는 데이터가 오류로 인해 소실되는 부분을 방지하기 위함이거나, 데이터를 남겨 나중에 확인할 가치가 있는 것..
2021.10.20 -
이렇게 살리라
'다음 번에는 더 많은 실수를 저지르리라. ...... 가능한 한 매사를 심각하게 생각하지 않을 것이며 보다 많은 기회를 붙잡으리라. 여행을 더 많이 다니고 석양을 더 자주 구경하리라. ...... 실제적인 고통은 많이 겪을 것이나 상상 속의 고통은 가능한 한 피하리라.' -인생을 다시 산다면;나딘 스테어(85세...)-
2021.10.09 -
[JPA] @Embedded 와 @Embeddable
@Embedded 와 @Embeddable 엔티티 여러 필드가 한 객체로 묶여서 관리할 경우 @Embeddable 클래스를 사용하고 엔티티에 @Embedded을 걸어줍니다. @Entity @Table(name = "PRODUCT") public class Product { @Embedded private Address address; private int price; } @NoArgsConstructor(access = AccessLevel.PROTECTED) @Embeddable @ToString public class Address { @Builder public Address(String city, String street, String zipcode) { this.city = city; this...
2021.10.08