분류 전체보기(170)
-
string
C++의 string 클래스는 표준 라이브러리의 헤더에 정의되어 있으며, 문자열을 다룰 때 사용1. 생성자 (Constructors)문자열 리터럴, 다른 문자열, 또는 문자 배열로부터 문자열을 생성2. 멤버 함수 (Member Functions)append( ): 문자열을 뒤에 추가assign( ): 문자열을 다른 문자열로 할당at( ): 주어진 인덱스에 있는 문자를 반환back( ): 문자열의 마지막 문자를 반환clear( ): 문자열을 삭제empty( ): 문자열이 비어 있는지 확인3. 연산자 오버로딩 (Operator Overloading)+ 연산자로 문자열을 연결할 수 있으며, [ ] 연산자로 문자에 접근4. 기타 기능find( ): 특정 문자나 문자열이 처음 등장하는 위치를 찾기substr( ..
2025.03.20 -
Linked List
Linked Listnode라고 불리는 일련의 연결된 요소들로 구성각 노드는 데이터와 다음 노드에 대한 참조(링크)를 가지고 있다.*배열과 달리 요소들이 메모리상에서 연속적으로 저장되지 않기 때문에 요소의 삽입과 삭제가 용이하다.Singly Linked List각 노드는 데이터와 다음 노드에 대한 포인터를 가지고 있다.마지막 노드는 NULL을 가리켜 리스트의 끝을 나타낸다.Doubly Linked List각 노드는 데이터와 함께 이전 노드와 다음 노드에 대한 포인터를 가지고 있다.리스트의 처음과 끝을 양방향으로 탐색할 수 있다.Circular Linked List마지막 노드가 첫 번째 노드를 가리켜 리스트가 원형으로 연결된다.시작 노드와 끝 노드가 명확히 구분되지 않는다. 주요 연산Insert리스트의 처..
2024.06.26 -
spring 어노테이션
@Component 자동으로 빈 등록하기 위함 bean이름은 기본으로 MemberServiceImpl이 있으면, memberServiceImpl 이렇게 앞글자만 소문자로 바뀌면서 등록된다.직접 지정하고 싶을 때 이 조건을 지키면서 작성. @Autowired 의존성 자동 주입 @ComponentScanbasePackages = "hello.core" 이런식으로 패키지 시작 위치를 지정하면 더 빨리 탐색 가능basePackageClasses = AutoAppConfig.class 지정한 클래스 탐색 (미지정 시 @ComponentScan이 붙은 설정 정보 클래스에서 시작)그런데 프로젝트 시작 루트 위치에 @SpringBootApplcation를 작성하면 @ComponetScan이 포함되어 있음spring으로..
2024.06.26 -
Configuration
싱글톤여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 상태를 유지하게 설계하면 안된다.무상태(stateless)로 설계해야한다.- 특정 클라이언트에 의존적인 필드가 있으면 안된다.- 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다.- 가급적 읽기만 가능해야 한다.- 필드 대신에 자바에서 공유되지 않는, 지역변수, 파라미터, ThreadLocal 등을 사용해야 한다.스프링 빈의 필드에 공유 값을 설정하면 안된다. @Configurationbean이 singleton방식으로 유지할 수 있도록 도와준다.@Configuration이 없을 경우각각의 Bean에서 생성되는 인스턴스 중복 생성 됨 = 싱글톤을 보장 못함Spring 설정 정보는 항상 @Configuration을 사용하자
2024.06.24 -
스프링 빈 (@Autowired / ApplicationContext)
@Autowired장점간결한 코드:@Autowired는 의존성 주입을 간결하게 처리할 수 있도록 해준다. 필요한 빈을 클래스 변수에 직접 주입할 수 있어 코드가 간결해진다. 의존성 관리의 용이성:스프링이 빈의 생명 주기와 의존성을 자동으로 관리해준다. 따라서 개발자가 의존성 관리에 신경 쓸 필요가 없다.자동 주입:스프링이 자동으로 빈을 주입해주기 때문에 코드의 가독성이 높아진다. 필요한 빈을 자동으로 찾고 주입한다.단점유연성 부족:특정 조건에 따라 동적으로 빈을 선택하거나 주입하는 것이 어렵다. 정적인 의존성 주입에 적합하다.테스트 어려움:주입된 빈을 목(mock)으로 대체하기 어렵다. 이 경우 @MockBean 등을 사용하여 대체할 수 있지만, 추가 설정이 필요순환 의존성 문제:클래스 간의 순환 의존성..
2024.06.23 -
DI 컨테이너, IoC컨테이너
IoC 제어의 역전단어로 전혀 와닿지 않았던 내용을 김영한님의 강의를 듣고 코드를 보면서 완전히 이해했다. 해당 내용에 대해서 여전히 이해가 부족한 상태였는데 AppConfig를 활용해 프로그램의 흐름에 관한 모든 제어를 AppConfig가 해서 다른 클래스들은 어떤 내용이 넘어오든 각자의 역할만 집중할 수 있게 됐으며, 이것이 수정도 줄여주고 더 효율적인 코드 작성에 필수적인 내용인 것을 이해했다. AppConfig (IoC container / DI container)프로그램에 대한 제어를 맡기기 위한 DI 컨테이너인 AppConfig를 만들어서 맡긴다.
2024.06.23