분류 전체보기(43)
-
[REACT] 리액트로 TODO 리스트 구현하기 :: (3) 컴포넌트 성능 최적화
https://codecrafting.tistory.com/12 에서 이어지는 내용입니다. [REACT] 리액트로 TODO 리스트 구현하기 :: (2) 기능 구현하기 https://codecrafting.tistory.com/11 에서 이어집니다! [REACT] 리액트로 TODO 리스트 구현하기 :: (1) UI 구성하기 서론 요즘 리액트를 다루는 기술이라는 책으로 코딩을 시작하고 처음으로! 리액트를 접하고. codecrafting.tistory.com 지난시간에 만든 일정관리 어플리케이션은 아직까지 많은 데이터가 추가되지 않았기 때문에 무리없이 정상적으로 작동하는 모습을 보입니다. 하지만 할일 목록이 1000개를 넘어가면 처리속도가 기하급수적으로 느려지는 것을 확인할 수 있습니다. 이는 리액트의 특징인..
2020.08.25 -
[REACT] 리액트로 TODO 리스트 구현하기 :: (2) 기능 구현하기
https://codecrafting.tistory.com/11 에서 이어집니다! [REACT] 리액트로 TODO 리스트 구현하기 :: (1) UI 구성하기 서론 요즘 리액트를 다루는 기술이라는 책으로 코딩을 시작하고 처음으로! 리액트를 접하고 있습니다. 요즘 트렌드가 기존의 MVC구조에서 SPA위주로 추세가 전환되고 있다는 소식이 자주 들려옵 codecrafting.tistory.com 이제 일정 관리 애플리케이션이 실제로 동작할 수 있도록 기능을 구현해봅시다. App 에서 todos 상태 사용하기 나중에 추가할 일정 항목에 대한 상태들은 모두 App 컴포넌트에서 관리합니다. App에서 useState를 사용하여 todos라는 상태를 정의하고, todos를 TodoList의 prop으로 전달합니다. A..
2020.08.23 -
[REACT] 리액트로 TODO 리스트 구현하기 :: (1) UI 구성하기
서론 요즘 리액트를 다루는 기술이라는 책으로 코딩을 시작하고 처음으로! 리액트를 접하고 있습니다. 요즘 트렌드가 기존의 MVC구조에서 SPA위주로 추세가 전환되고 있다는 소식이 자주 들려옵니다. 때문에 Vue.js 나 React에 대한 관심이 많았는데 마침 스프링 부트 프로젝트도 끝났겠다, 이번 기회에 한번 도전해보고 싶은 생각이 들어 맘이 맞는 친구와 함께 스터디를 진행하고 있습니다. 공부과정은 깃헙에 상시 올라가고 있습니다. 😇 본 포스팅 시리즈는 이 책의 10장에 해당하는 '일정 관리 웹 어플리케이션 만들기'를 따라하면서 정리합니다. 프로젝트 빌드하기 프로젝트를 시작하기에 앞서 node.js와 npm, yarn이 설치되어 있어야 합니다. 설치방법은 여기에서 다루지 않습니다. 설치가 되어 있으면 이제..
2020.08.23 -
[Spring Boot] (4) 로그인/회원가입 - 자사 로그인 :: 음악학원 홈페이지 프로젝트
https://codecrafting.tistory.com/9 에서 이어지는 포스팅입니다. [Spring Boot] (2) 로그인/회원가입 - Spring Security 설정 :: 음악학원 홈페이지 프로젝트 들어가기 전에 ... 스프링 시큐리티 Spring Security에 대해 스프링 시큐리티를 이용하면 개발시에 필요한 사용자의 인증, 권한, 보안 처리를 간단하지만 강력하게 구현 할 수 있습니다. 일반적인 웹 codecrafting.tistory.com 지난 포스팅에서는 간단하게 자사 회원가입 서비스에 대한 과정을 설명했습니다. 이번 포스팅에서는 회원가입에 이어 로그인을 진행하겠습니다. Security Config 설정 포스팅에서 설명했듯이 Spring Security Filter를 통한 로그인 인증..
2020.08.15 -
[Spring Boot] (3) 로그인/회원가입 - 자사 회원가입 :: 음악학원 홈페이지 프로젝트
https://codecrafting.tistory.com/8 에서 이어지는 포스팅입니다. [Spring Boot] (2) 로그인/회원가입 - Spring Security 설정 :: 음악학원 홈페이지 프로젝트 들어가기 전에 ... 스프링 시큐리티 Spring Security에 대해 스프링 시큐리티를 이용하면 개발시에 필요한 사용자의 인증, 권한, 보안 처리를 간단하지만 강력하게 구현 할 수 있습니다. 일반적인 웹 codecrafting.tistory.com 지난 포스팅에서는 Spring Security를 WebSecurityConfigurerAdapter 클래스를 확장하여 간단하게 구현했습니다. 오버라이딩 되는 메소드 중, configure(AuthenticationManagerBuiider) 메소드에서..
2020.08.14 -
[Spring Boot] (2) 로그인/회원가입 - Spring Security 설정 :: 음악학원 홈페이지 프로젝트
들어가기 전에 ... 스프링 시큐리티 Spring Security에 대해 스프링 시큐리티를 이용하면 개발시에 필요한 사용자의 인증, 권한, 보안 처리를 간단하지만 강력하게 구현 할 수 있습니다. 일반적인 웹 환경에서 브라우저가 서버에게 요청을 보내게 되면, DispatcherServlet 이 요청을 받기 이전에 많은 ServletFilter(서블릿 필터)들을 거치게 됩니다. Spring Security도 서블릿 필터로써 작동하여 인증, 권한과 관련한 처리를 진행하게 됩니다. 스프링 필터 체인? Security와 관련한 서블릿 필터도 실제로는 연결된 여러 필터들로 구성 되어 있습니다. 이러한 모습때문에 Chain(체인)이라는 표현을 쓰고 있습니다. 해당 필터들의 역할과 흐름을 알고 있어야 필터의 커스터마이..
2020.08.12 -
[Spring Boot] (1) Gradle 빌드업 :: 음악학원 홈페이지 프로젝트
사용 기술 IDE: Intellij Community Compiler: Java 8 Build Tool: Gradle 6.1.1 Framework: Spring Boot 2.1.7 Template engine: Thymeleaf Database: AWS RDS MariaDB, H2 API: Spring Data JPA, Lombok, Oauth2, JavaMailSender etc. Security: Spring Security 5 using WebSecurityConfigurer Deploy: AWS EC2 instance, AWS Code Deploy, AWS S3, Travis CI Version Control: Git 스프링 레거시를 이용한 맛집 예약 웹서비스 프로젝트를 마친지 3개월이 지났다. ..
2020.08.12 -
합병정렬(Merge Sort) 구현하기
합병정렬 알고리즘 요약 합병 정렬은 일반적인 방법으로 구현했을 때 안정 정렬에 속하며, 분할 정복 알고리즘 중 하나이다. 분할 정복(divide and conquer) 방법 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 분할 정복 방법은 대개 순환 호출을 이용하여 구현한다. 과정 설명 리스트의 길이가 0 또는 1이면 이미 정렬된 것으로 본다. 그렇지 않을 경우에는 정렬되지 않는 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다. 합병 정렬의 과정 하나의 리스트를 두 개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬한..
2020.08.12 -
선택정렬(Selection Sort) 구현하기
선택정렬은 첫 번째 자료를 두 번째 자료부터 마지막 자료까지 차례대로 비교하여 가장 작은 값을 찾아 첫 번째에 놓고, 두 번째 자료를 세 번째 자료부터 마지막 자료까지와 차례대로 비교하여 그 중 가장 작은 값을 찾아 두 번째 위치에 놓는 과정을 반복하여 정렬을 수행하는 정렬 알고리즘이다. 소스코드 public static void main(String[] args) { int[] arr = {3, 6, 2, 8, 1, 15, 11, 5}; selectionSort(arr); System.out.println(Arrays.toString(arr)); } private static void selectionSort(int[] arr) { for (int i=0; i
2020.08.12 -
삽입정렬(Insertion Sort) 구현하기
삽입정렬은 1부터(0아님) n까지 순서대로 index를 설정하여 현재위치보다 앞쪽을 순회하여, 기준 index값보다 큰 값들을 한칸씩 뒤쪽으로 밀고 기준 index보다 작은 값을 만나면 해당 위치에 삽입(insertion)하는 정렬알고리즘이다. 구현하기 까다롭지 않은 알고리즘이지만… It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. 퀵 정렬, 힙 정렬, 마지 정렬과 같은 고급알고리즘에서 훨씬 효율적이지 못하다는 단점을 가지고 있다. More efficient in practice than most other simple quadratic (i.e., ..
2020.08.12