목록전체 글 (49)
세상에 나쁜 코드는 없다
🔗대규모 데이터를 처리하는 게시판 시리즈 (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억건을 넘기는 경우가 없었어서 대규모 데이터가 애플리케이션에 어떤 영향을 미치는지, 이를 해결하기 위해서는 어떤것을 도입해야하는지, 이것을 테스트하고 평가하는 항목은 어떻게 구성해야하..
크롬의 시작화면에서는 왜 바로가기 아이콘을 10개까지만 만들 수 있을까요? 또한 같은 기능을 같은 UI로 다양한 브라우저에서 사용할 순 없을까요? 전부터 이게 불만이었던 저는 웹애플리케이션을 만들어서 새 탭을 커스터마이징해보기로 했습니다. 공통페이지 전환각각의 페이지를 전환할 때 효과를 주기 위해 CSSTransition을 사용했습니다.화면 전환화면 전환시 기존의 페이지가 밀려나고 새로운 페이지가 들어오는 형태의 UI를 제공했습니다. 이 과정에서 메뉴나 상단바 아이템들은 전환의 대상이 되지 않고 고정되게 해놨습니다. 페이지 전환은 버튼을 통해서도, 단축키를 통해서도 이루어집니다. 이 과정은 page routing이 아닌 내부 컴포넌트 변경을 통해 이루어집니다. 따라서 navigation hook은 사용하..
📖스프링 원리 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..
Process개념Program In ExecutionThe Unit of Work프로세스란 프로그램이 수행되는 작업단위를 의미하며, 운영체제에 의하여 관리됩니다. 운영체제의 가장 큰 임무 중 하나는 디스크의 프로그램이 수행될 수 있도록 메모리로 가져오고, CPU가 어떤 프로세스의 명령어들을 수행하게 할지 결정하는 것입니다. 또한 모든 명령어가 수행되면 프로세스를 종료시키고 프로세스가 사용중이던 메모리와 자원들을 반환하는 작업도 수행합니다.프로세스가 무엇인지 정확하게 이해하기 위해서는 우리가 생성한 프로그램이 어떻게 실제로 동작하는지 그 원리를 알아야할 필요가 있습니다. 아래부터는 프로그램을 수행시키기 위해 운영체제가 수행하는 일들을 살펴보고 그 과정에서 프로세스가 무엇인지 이해도를 높인다음, 프로세스와 ..
Seoul Web 3.0 FestivalSeoul Web 3.0 FestivalSWF 2023, 서울 웹 3.0 페스티벌, 7.31~8.2, 동대문 디자인 플라자, DDP, 웹 3.0 해커톤, 데모데이, NFT 포럼 등https://seoulweb3festival.com/홈페이지Github Linkhttps://github.com/Cinderella-mom-is-gathering/Koren-FrontendSeoul Web 3.0 Festival 해커톤포스터서울시, 서울디자인재단과 바오밥 파트너즈가 주최하는 2023 서울 Web 3.0 페스티벌의 해커톤에 참가했다. 지인의 소개를 받아 프론트엔드 역할로 팀에 합류했다. 팀은 나를 포함해서 6명이었고, web3에 대해 잘 아는 3명의 팀원과 나를 포함하여 구..
개요Memory Management RequirementsRelocationProtectionSharingLogical OrganizationPhysical OrganizationMemory PartitioningFixed PartitioningPartition SizesPlacement AlgorithmDynamic PartitioningPlacement AlgorithmReplacement AlgorithmBuddy SystemRelocationPagingSegmentationSummary개요단일 프로세스 프로그래밍uniprogramming 시스템에서 메인 메모리는 OS의 kernel이 차지하고 있는 영역과 User Program이 차지하고 있는 영역으로 나뉘어 있다. Multiprogramming ..
API 설계내가 맡은 부분은 프로젝트의 메인 로직 부분인 팀과 관련된 부분이었다. 팀에서 요구되는 기능은 아래와 같다.팀은 2가지 분류로 나뉜다. (공모전 팀, 스터디 팀)각 팀에 대한 정보를 조회할 수 있어야 한다.공모전 팀은 특정 공모전에 해당하는 팀들을 모아 볼 수 있어야 한다.스터디 팀은 스터디의 세부 분야 (어학, 자격증, 프로그래밍 등)에 따라 모아볼 수 있어야 한다.팀 조회시 최신순과 마감순으로 정렬하여 확인할 수 있어야 한다.팀을 생성 및 수정할 수 있어야 한다.사용자는 원하는 팀에 신청할 수 있다.팀의 개설자는 신청한 팀원의 정보를 확인하고 팀원으로 승인하거나 거부할 수 있다.사용자는 마이페이지에서 자신이 참여하고 있는 팀의 정보를 확인할 수 있다. 위 기능을 수행하기 위해 구성된 API..