AI/ML 용어 정리 머신러닝: 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분입니다. 데이터 마이닝: 정형화된 데이터를 중심으로 분석하고 이해하고 예측하는 분야 지도학습 (Supervised learning): 정답을 주고 학습시키는 머신러닝의 방법론. 대표적으로 regression과 classification이 입니다. 비지도학습 (Unsupervised learning): 정답없는 데이터를 어떻게 구성되었는지를 알아내는 머신러닝의 학습 방법론. 지도 학습 혹은 강화 학습과는 달리 입력값에 대한 목표치가 주어지지 않습니다. 강화학습 (Reinforcement Learning): 설정된 환경속에 보상을 주며 학습하는 머신러닝의 학습 방법론입니다. Represent..
가상 함수(Virtual Function) C++에서 자식 클래스에서 재정의(오버라이딩)할 것으로 기대하는 멤버 함수를 의미함 멤버 함수 앞에 virtual 키워드를 사용하여 선언함 → 실행시간에 함수의 다형성을 구현할 때 사용 선언 규칙 클래스의 public 영역에 선언해야 한다. 가상 함수는 static일 수 없다. 실행시간 다형성을 얻기 위해, 기본 클래스의 포인터 또는 참조를 통해 접근해야 한다. 가상 함수는 반환형과 매개변수가 자식 클래스에서도 일치해야 한다. class parent { public : virtual void v_print() { cout
[Cpp] 얕은 복사 vs 깊은 복사 shallow copy와 deep copy가 어떻게 다른지 알아보자 얕은 복사(Shallow Copy) 한 객체의 모든 멤버 변수의 값을 다른 객체로 복사 깊은 복사(Deep Copy) 모든 멤버 변수의 값뿐만 아니라, 포인터 변수가 가리키는 모든 객체에 대해서도 복사 struct Test { char *ptr; }; void shallow_copy(Test &src, Test &dest) { dest.ptr = src.ptr; } void deep_copy(Test &src, Test &dest) { dest.ptr = (char*)malloc(strlen(src.ptr) + 1); strcpy(dest.ptr, src.ptr); } shallow_copy를 사용하..
네이버 카페 https://cafe.naver.com/spring4shoppingmall 스프링으로 구현하는 쇼핑몰 : 네이버 카페 JSP와 스프링을 학습 후 쇼핑몰을 구현해 봅니다. cafe.naver.com 깃허브 https://github.com/gilbutITbook/006895 gilbutITbook/006895 자바 웹을 다루는 기슬_예제 소스. Contribute to gilbutITbook/006895 development by creating an account on GitHub. github.com 강의를 시작하며 https://youtu.be/qhc50ZYY4PM 1.1 클라이언트 PC 프로그램의 특징 https://youtu.be/HqK0A8ShAbg 1.2 클라이언트 서버 프로그램..
싱글턴 패턴 (Singleton Pattern) 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴. 클래스에서 자신의 단 하나뿐인 인스턴스를 관리하도록 만든다. 다른 어떤클래스에서도 자신의 인스턴스를 추가로 만들지 못하도록 해야한다. 싱글턴 클래스 다이어그램 고전적인 싱글턴 패턴 구현법 (어떤 문제가 있을까?) public class Singleton { private static Singleton uniqueInstance; private Singleton() {} public static Singleton getInstance() { if (uniqueInstance == null) { uniqueInstance = new Singleton(); ..
팩토리 패턴 (Factory Pattern) 팩토리 메소드 패턴 : 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만든다. 즉 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것. 추상 팩토리 패턴 : 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성. new를 사용하는 것은 구상 클래스의 인스턴스를 만드는 것이다. 당연히! 인터페이스가 아닌 특정 구현을 사용하게 되어버리는 것. 일련의 구상 클래스들이 있을때는 어쩔수 없이 다음과 같은 코드를 만들어야 하는 경우가 있음. Duck duck; if ( type == picnic ) duck = new MallardDuck(..
데코레이터 패턴 (Decorator Pattern) 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. 데코레이터 패턴 클래스 다이어그램 ConcreteComponent에 새로운 행동을 동적으로 추가할수 있다. 각 데코레이터 안에는 구성요소(Component)에 대란 레퍼런스가 들어있는 인스턴스 변수가있다. Decorator는 자신이 장식할 구성요소(Component)와 같은 인터페이스 또는 추상 클래스를 구현한다. ConcreteDecoratorA, ConcreteDecoratorB 에는 그 객체가 장식하고있는(데코레이터가 감싸고 있는 Component객체)을 위한 인스턴스 변수가 있다. 따라서 데코레이터는 Compo..
Dependency Injection(의존성 주입)이란? 아주 극단적인 설명을 드리자면, 스스로의 의존성을 능동적으로 설정하지 않고, 외부의 도움을 받아서 의존성을 설정한다는 말입니다. 일정 이상의 프로그램을 개발할때는 어떤 형태로든 객체들이 의존성을 맺어, 객체들간에 협력하면서 프로그램이 동작하게 마련인데, 이 의존성을 스스로 설정하지 않고 내가 의존해야(=사용해야) 하는 객체를 외부에서 할당(=주입)해주는 것을 의존성 주입이라고 합니다. 간단한 예를 들기 위해서, 어딘가에서 데이터를 읽어와서 화면에 출력하는 프로그램을 만든다고 해봅시다. 이 클래스는 데이터를 읽어오는 Reader 클래스를 필드로 갖고, 이 Reader 클래스의 인스턴스를 통해 데이터를 화면에 출력합니다. class ContentWri..
DI(Dependency Injection) - 스프링 컨테이너가 지원하는 핵심 개념 중 하나 - 설정 파일을 통해서 객체간의 의존관계를 설정 - 객체 사이의 의존관계를 객체 자신이 아닌 외부의 조립기가 수행 - 각 클래스 사이에 필요로 하는 의존관계를 Bean설정 정보 바탕으로 컨테이너가 자동으로 연결 - 객체는 직접 의존하고 있는 객체를 생성하거나 검색할 필요가 없음 -> 코드관리가 쉬워짐 AOP(Aspect Oriented Programming) - 공통의 관심 사항을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복을 해소해 줌 - 각 클래스에서 공통 관심 사항을 구현한 모듈에 대한 의존관계를 갖기 보다는 Aspect를 이용하여 핵심 로직을 구현한 각 클래스에 공통 기능을 적용 - 간단한 설정만으..
자바, 스프링 면접 질문 1. OOP가 뭐죠? 2. 자바의 메모리 영역에 대해서 설명해보세요. 3. 인터페이스가 뭐죠? 왜 사용하나요? 4. 메모리 상수풀 영역에 대해 설명해보세요. 5. jdbc가 무엇인가요? 6. 직렬화란 무엇인가요 ? 7. serialVersionUID를 선언해야 하는 이유는 뭔가요? 8. 리플렉션이란 무엇인가요? 9. 자바의 클래스 멤버 변수 초기화 순서에 대해 설명하세요 10. Servlet과 JSP를 비교해서 설명하세요 11. 제너릭이 무엇인가요? 12. 컬렉션 클래스에서 제너릭을 사용하는 이유를 설명하세요 13. pojo가 무엇인가요? 14. 박싱과 언박싱에 대해 설명하세요 15. 데드락이 무엇이고, 해결방법에 대해 설명해보세요 16. 상속과 컴포지션(합성)의 차이에 대해서 ..
- Total
- Today
- Yesterday