목록웹개발/백엔드 (21)
세상에 나쁜 코드는 없다
🔗대규모 데이터를 처리하는 게시판 시리즈 (1) - 웹애플리케이션 개발 및 더미데이터 생성 (2) - JMeter와 테스트플랜 생성, 최초 성능 테스트 (3) - Index(1) (4) - Index(2) (5) - DB Connection (6) - InnoDB Buffer Pool (7) - Replication, PartitioningJMeter구성 요소어떻게 테스트해야 하는가?트래픽의 비율테스트가 데이터 셋에 주는 영향DB 캐시 테스트 플랜 작성HTTP Request 생성병렬 테스트리스너 생성최초 성능 테스트요청별로 1개씩300개의 요청JMeterApache JMeter - Apache JMeter™The Apache JMeter™ application is open source software,..
🔗대규모 데이터를 처리하는 게시판 시리즈 (1) - 웹애플리케이션 개발 및 더미데이터 생성 (2) - JMeter와 테스트플랜 생성, 최초 성능 테스트 (3) - Index(1) (4) - Index(2) (4) - DB Connection (5) - InnoDB Buffer Pool (6) - Replication, Partitioning개요게시판 개발구성요소더미데이터 생성Trouble Shooting안일한 데이터 사이즈 설계Lock table size개요지금까지 여러 토이프로젝트를 해오면서 단일 테이블의 레코드 개수가 1억건을 넘기는 경우가 없었어서 대규모 데이터가 애플리케이션에 어떤 영향을 미치는지, 이를 해결하기 위해서는 어떤것을 도입해야하는지, 이것을 테스트하고 평가하는 항목은 어떻게 구성해야하..
📖스프링 원리 1. 의존관계 주입 Dependency Injection 2. 스프링 컨테이너에 빈을 등록하는 방법개요Spring Bean & Spring ContainerSpring BeanSpring Container스프링 컨테이너가 빈을 등록하기 위해 필요로 하는 정보@Configuration 과 빈 팩토리 메소드를 통한 빈 생성ApplicationRunner를 통한 빈 등록 확인ApplicationContext 주입받기정리@ComponentScan, @Component로 빈 생성합성 애노테이션마무리개요저번 글인 ‘의존주입 Dependency Injection’에서 어떻게 의존성을 관리하여 프로그램을 유연하게 만드는지 살펴봤습니다. 저번 장의 예제인 LogService는 스프링의 도움을 받지 않고 만..
📖스프링 원리 1. 의존관계 주입 Dependency Injection 2. 스프링 컨테이너에 빈을 등록하는 방법의존Dependency이란?정의의존성과 UML Class Diagram의존성이 높은 프로그램의 특징 의존성의 전이Coupling과 Cohesion예제, LogServicePM의 요청문제점높은 결합도로 인한 유연성 감소테스팅의 어려움Dependency InjectionDIP (Dependency Inversion Principle)Injector의존 주입의 장점LogService 문제 해결의존주입 나머지 주제 의존 주입 방식의존 주입 시 유의점더 나은 구조의존Dependency이란?정의OOP에서 하나의 객체는 섬island으로 존재하지 않습니다. 소프트웨어 내부에는 수 많은 객체가 존재하고, 객..
개요예제, FibonacciCalculator성능 체크프록시AOP 공통 기능 삽입 방법 AspectJ와 Spring AOPAOP 용어개요AOP는 IoC/DI, 서비스 추상화와 더불어 스프링의 3대 기반기술의 하나다. 이 글에서는 FibonacciCalculator 예제를 통해 AOP의 필요성을 느끼고 스프링이 이 문제를 해결하기 위해 제공하는 기능들을 알아볼 것이다.예제, FibonacciCalculatorFibonacciCalculator는 long fibonacci(long num);이라는 하나의 메서드를 갖고 있는 인터페이스로, 파라미터로 제공된 항의 피보나치 수를 반환한다.//FibonacciCalculator.java public interface FibonacciCalculator { long..
API 설계내가 맡은 부분은 프로젝트의 메인 로직 부분인 팀과 관련된 부분이었다. 팀에서 요구되는 기능은 아래와 같다.팀은 2가지 분류로 나뉜다. (공모전 팀, 스터디 팀)각 팀에 대한 정보를 조회할 수 있어야 한다.공모전 팀은 특정 공모전에 해당하는 팀들을 모아 볼 수 있어야 한다.스터디 팀은 스터디의 세부 분야 (어학, 자격증, 프로그래밍 등)에 따라 모아볼 수 있어야 한다.팀 조회시 최신순과 마감순으로 정렬하여 확인할 수 있어야 한다.팀을 생성 및 수정할 수 있어야 한다.사용자는 원하는 팀에 신청할 수 있다.팀의 개설자는 신청한 팀원의 정보를 확인하고 팀원으로 승인하거나 거부할 수 있다.사용자는 마이페이지에서 자신이 참여하고 있는 팀의 정보를 확인할 수 있다. 위 기능을 수행하기 위해 구성된 API..