반응형 Spring63 [Spring/OOP] 디미터의 법칙 @Getter 지양 이유 2 디미터 법칙은 객체 간 관계를 설정할 때 객체 간의 결합도를 효과적으로 낮출 수 있는 유용한 지침 중 하나로 꼽히며 객체 지향 생활 체조 원칙 중 한 줄에 점을 하나만 찍는다. 로 요약되기도 한다. 객체 지향 프로그래밍에서 가장 중요한 것은 "객체가 어떤 메세지를 주고 받는가?" 이다 객체가 메시지를 보내거나 상호작용할 때 바로 옆에 있는 이웃(직접적인 친구)에게만 말을 걸고 이웃의 이웃(낯선 사람)에게는 말을 걸지 말라는 뜻이다. 이를 통해 객체 간의 결합도를 낮추고 캡슐화를 강화할 수 있다. 이를 개선하기 위해 객체에게 자료를 숨기는 대신 함수를 공개한다 . 디미터 법칙 위반 코드 String departmentName = employee.getDepartment().getManager().getDe.. 2025. 10. 9. [Spring/OOP] Getter와 Setter 를 지양해야 하는 이유 객체지향 4대 핵심 중 캡슐화 - 정보 은닉 이라는 것이 있다.객체지향 언어적 요소를 활용하여 객체에 대한 구체적인 정보를 노출시키지 않도록 하는 기법을 칭한다. 이러한 이유 때문에 스프링에서는 Class를 작성할때 필드를 Private 로 정보를 숨기게 되고 접근할때 public 생성자를 통해 접근하게 된다. @Getter@AllArgsConstructorpublic class Member { @Id private String email; private String password;} @Getter / @Setter 를 쓰지 말라는 이유모든 필드(데이터)에 습관적으로 public Getter/Setter를 만들어주는 것은, 사실상 private으로 선언한 변수를 public으로 만.. 2025. 10. 8. [Spring/그로우업]과부화 테스트 DB vs Server (2편) 원래는 다른 주제로 해보려고 했는데 저번에 한 주제를 가지고 동료와 얘기해 보았을때 DB는 신이다 얼마 차이가 나지 않는다고. 그래서 제 데이터에서도 한 번 쏴봤습니다. select * from keyword where date between "2025-07-01" and "2025-07-02" and campaign_id = 10; 836ms , 413ms, 340ms SELECT k.date, CASE WHEN k.key_keyword = '-' THEN '-' ELSE 'search' END AS keySearchType, SUM(k.impressions) AS impressions, SUM(k.clicks) AS clicks, SUM(k.ad_cost) AS adCost.. 2025. 9. 11. [Spring/그로우업]과부화 테스트 DB vs Server sum by(uri)(rate(http_server_requests_seconds_count{application="$app_name"}[1m])) 이번에 그로우업을 진행하면서 항상 동료랑 얘기했던DB에서 극한으로 가공을 해서 가져오기 vs 큰 틀로 가져와서 서버에서 가공하기를 테스트 해보려고해요 저번에 100만개로 했는데 부족하다고 생각하여 현재 DB는 키워드라는 테이블에 총 5000만개를 준비했습니다. 저번에 한 테스트트 파티셔닝 , index 등 DB관련 내용이라 궁금하신 분은 아래에서 봐주시면 됩니다.https://windy7271.tistory.com/entry/Spring-DB-%ED%8C%8C%ED%8B%B0%EC%85%94%EB%8B%9D-Index-%EC%88%9C%EC%88%98-%EC.. 2025. 9. 9. [Spring] yml 파일 분리, 스프링 yml 읽기전까지 프로젝트를 진행하다보면배포서버, Dev서버, 로컬서버 다 yml파일이 다르기 떄문에 application.yml 파일을 local, dev, test 등으로 분리해야하는 경우가 있습니다. 1. application.ymlspring: profiles: active: local 2. 프로파일 별 분리2.1 local-ymlspring: config: activate: on-profile: local datasource: driver-class-name: org.mariadb.jdbc.Driver url: ${DATASOURCE_URL} username: ${DATASOURCE_USERNAME} password: ${DATASOURCE_PASSWORD} .. 2025. 9. 2. [Spring, DB] 파티셔닝, Index, 순수 성능 차이 저희 서비스는 날짜를 던져 DB에 접근해 가져옵니다. 하지만 지금은 파티셔닝 없이 그대로 날짜컬럼을 통해 가져옵니다.파티셔닝을 도입했을때 성능이 개선이 되는지 궁금해 테스트 해보려고 합니다. 일단 2달간의 데이터 100만개를 준비했습니다.Date를 인덱스 설정을 했을때 성능을 봐보겠습니다. 1. where 절 단일 날짜 날릴경우EXPLAIN select * from keyword where key_date = "2025-07-05";100, 72, 82, 112ms 2. where 절 두 날짜 사이 날리는 경우EXPLAIN SELECT * FROM keyword WHERE key_date BETWEEN "2025-07-01" AND "2025-07-07"; 154 96 106.. 2025. 7. 8. 이전 1 2 3 4 ··· 11 다음 반응형