[CS,코딩테스트] 코딩테스트의 시간 복잡도에 관하여
·
공부중
시간 복잡도 표기법 알아보기 알고리즘에서 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 말합니다. 일반적으로 수행시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측합니다. 빅-오메가: 최선일 때의 연산 횟수를 나타낸 표기법 빅-세타: 보통일 때의 연산 횟수를 나타낸 표기법 빅-오: 최악일 때의 연산 횟수를 나타낸 표기법 예로, for loop를 0~100 까지 반복하는 코드가 있고, if 문을 통해 return하는 함수가 존재할때, 최선일 때 - 1회만에 바로 성공 - 빅-오메가 보통일 때 - 50회에 성공 - 빅-세타 최악일 때 - 100회 마지막에 성공 - 빅-오 코딩 테스트에서 사용하는 시간복잡도 유형 코딩 테스트에서는 빅-오 표기법을 기준으로 수행 시간을 계산하는 것이 좋습니다. 왜냐..
[CS] HTTP 메서드의 속성 및 활용 설계 예시
·
공부중
모든 개발자를 위한 HTTP 웹 기본 지식 | 김영한 - 인프런 김영한 | 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연 www.inflearn.com HTTP 메서드 API URI 설계 가장 중요한 것은 리소스 식별이다. 회원을 등록하고 수정하고 조회하는게 리소스가 아니다. 회원이라는 개념 자체가 바로 리소스이다. 리소스는 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배제 회원이라는 리소스만 식별하면 된다 → 회원 리소스를 URI에 매핑 리소스를 바탕으로 구현한 api는 어떻게 구분해야 할까? URI는 리소스만 식별한다. 리소스..
[Spring] 싱글톤 컨테이너, 컴포넌트와 컴포넌트 스캔
·
BackEnd/Java
싱글톤 컨테이너 스프링 컨테이너는 싱글톤 패턴의 문제점들을 해결하면서, 객체 인스턴스를 싱글톤으로 생성한다. 스프링에서는 싱글톤 패턴을 구현하기 위한 지저분한 코드가 필요없다. DIP, OCP , 테스트, private 생성자로 부터 자유로워진다. 스프링 컨테이너를 사용하면 기본적으로 싱글톤으로 사용된다. 싱글톤 방식말고 요청할때마다 새로운 객체를 생성해서 반환하는 기능도 제공한다. 하지만 거의 대부분 99% 싱글톤 방식을 사용한다. 싱글톤 방식의 주의점 싱글톤 패턴이든, 스프링 컨테이너든, 하나만 생성해서 공유하는 싱글톤 방식은, 상태를 유지하게 설계되면 안된다. 무상태로 설계해야한다 특정 클라이언트에 의존적인 필드가 있으면 안된다. 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다. 가급적..
[Spring] BeanFactory와 ApplicationContext 이해하기
·
BackEnd
BeanFactory와 ApplicationContext BeanFactory 스프링 컨테이너의 최상위 인터페이스다 스프링 빈을 관리하고 조회하는 역할을 담당한다. getBean() 을 제공한다. ApplicationContext BeanFactory의 기능을 모두 상속받아서 제공합니다. BeanFactory를 상속받아 사용하는데 왜 굳이 ApplicationContext를 사용할까? 애플리케이션을 개발할 때에는 빈 관리 기능 및 많은 부가기능이 필요하다. 결론적으로 BeanFactory의 기능을 상속받아 빈 관리기능 + 편리한 부가기능 BeanFactory의 상위호환? 느낌이라고 생각하면 편하다. 어떤 부가기능을 제공할까? 메세지소스를 활용한 국제화 기능 국제화 기능? 한국이면 한국어 영어면 영어 등등..
[Spring] 스프링 컨테이너와 빈
·
BackEnd
스프링 컨테이너와 빈 정확히는 스프링 컨테이너를 부를때 BeanFactory, ApplicationContext 두개로 구분해서 설명한다. BeanFactory를 직접 사용하는 경우는 거의 없음으로, ApplicationContext를 일반적으로 스프링 컨테이너라고 부른다. 빈은 메서드 이름을 사용할 수 있다. 빈 이름을 직접 부여할 수도 있다. 하지만 항상 다른 이름을 사용하자 만약 이름이 같다면 덮어버리면서 오류가 생길 수 있다. 무조건 단순하고 명확하게 개발해야 한다. 최근, Spring Boot 같은 경우 충돌이 생기면 default로 주의를 주며 스프링이 종료된다. @Configuration public class AppConfig { @Bean private static MemberReposi..
[Spring] 스프링 핵심원리 - 기본편 / 관심사의 분리
·
BackEnd
관심사의 분리 각각의 인터페이스를 배역 이라고 생각. 배역에 맞는 배우를 선택하는 것은 누가하는가? 공연 기획자 기획팀에서 다 하는거지 배우라는 사람이 섭외하는게 아니다. AppConfig 애플리케이션의 전체 동작 방식을 구성(config) 하기 위해, **“구현 객체를 생성”**하고, “연결” 하는 책임을 가지는 별도의 설정 플레이스를 만들어서 해결한다. // 문제 // 인터페이스 - 인터페이스 로 이루지지않고 // 인터페이스 - 구현체 로 이루어 져있으며 // 이는 DIP를 위반한다. public class MemberServiceImpl implements MemberService{ public final MemberRepository memberRepository = new MemoryMember..
[Java] Optional(옵셔널) 이란?
·
BackEnd/Java
Optional 옵셔널이란 무엇인가? 옵셔널은 자바 8에서 도입된 클래스로, null 값을 안전하게 처리하기 위한 도구입니다. 옵셔널은 값이 존재하는 경우 Optional 객체에 값을 감싸서 저장하고, 값이 없는 경우에는 빈 Optional 옵셔널의 장점 NullPointerException 방지: 옵셔널을 사용하면 null 값으로 인한 NullPointerException을 예방할 수 있습니다. 코드 간결화: null 체크 코드를 생략하여 코드를 간결하게 작성할 수 있습니다. 코드 안전성 향상: null 값으로 인한 오류를 줄여 코드의 안전성을 높일 수 있습니다. 옵셔널 생성 Optional.of(value): 값이 null이 아닌 경우 옵셔널 객체를 생성합니다. Optional.ofNullable(v..
[React] 웹 에서 Toast를 띄워보기 (react-toastify)
·
FrontEnd/React
안드로이드는 개발환경에서 Toast 라는 작은 메세지 박스를 자체적으로 구현이 가능합니다. 하지만 웹 어플리케이션에서는 custom 을 해주거나 별도로 라이브러리를 사용해야합니다. 사용하려면? react에서 지원되는 react-toastify라는 라이브러리를 통해 쉽게 toast 메세지 박스를 구현가능합니다. react-toastify 사용법 이 글은 react(nextjs) 를 기반으로 작성되었습니다. 공식문서 https://www.npmjs.com/package/react-toastify react-toastify React notification made easy. Latest version: 10.0.4, last published: 24 days ago. Start using react-toas..