본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ

분류 전체보기471

[수학용어정리] 공집합? 차집합? 대칭차집합? https://namu.wiki/w/%EC%A7%91%ED%95%A9#s-4.1 집합 개요 "전체는 부분보다 크다" 라는 명제가 있다. 만일 존재가 전체와 부분으로 나뉠 수 있다면 이 명제는 증명될 필 namu.wiki 나무위키에서 참조해봤습니다. 공집합. ∥A∥=0, 즉 원소가 없는 집합. 따라서 모든 집합의 부분집합이 될 수 있다. 빈 집합을 의미합니다. 차집합. 두 집합 사이의 겹치는 원소를 제외하는 연산. 'A 차집합 B'는 A−B 또는 A∖B라 쓴다. 2024. 2. 11.
[Spring] Lombok 기능 생성자 자동생성, NoargsConstructor, RequiredArgsConstructor, AllArgsConstructor 정리 lombok은 getter, setter , 생성자 등 자동 생성을 지원해주는 기능입니다. 그중에서 NoargsConstructor, RequiredArgsConstructor, AllArgsConstructor 를 구분하는게 필요해서 간략하게 포스팅해보려 합니다. public class Board { private int age; private Long id; } @NoArgsConstructor 기본 생성자를 생성해줍니다. 이 경우 초기값 세팅이 필요한 final 변수가 있을 경우 컴파일 에러가 발생하니 주의해야 합니다. Board board = new Board(); // @NoArgsConstructor(force=true) 를 사용하면 null, 0 등 기본 값으로 초기화 된다. @NoArgsC.. 2024. 2. 11.
[Spring] Bean 수동 등록, 자동 등록 구분하기 스프링을 사용하다보면 Bean을 등록하는데 있어 크게 두가지 방법이 있습니다. 컴포넌트 스캔으로 의존관계 자동 주입을 사용 (클래스에 어노테이션을 붙여 컴포넌트 스캔을 활용하기) 설정 정보를 통해서 수동으로 빈을 등록하고, 의존관계 수동으로 주입 강의를 들어보면 스프링이 나오고 시간이 갈 수록 점점 자동을 선호하는 추세라고 합니다. 스프링은 @Component 뿐만 아니라 @Controller , @Service , @Repository 처럼 계층에 맞추어 일반적인 애플리케이션 로직을 자동으로 스캔할 수 있도록 지원합니다. 거기에 더해서 최근 스프링 부트는 컴포넌트 스캔을 기본으로 사용하고, 스프링 부트의 다양한 스프링 빈들도 조건이 맞으면 자동으로 등록하도록 설계되었다고 합니다. 설정 정보를 기반으로 .. 2024. 2. 11.
[IntelliJ] 인텔리j 초기 설정 방법 IntelliJ를 사용하면서 초기에 설정하면 좋은 세팅을 정리해보려 합니다. 꽤 늦은것 같지만... 지금이라도 알고 있는 내용을 정리하는게 좋을거 같다고 생각되어 정리하려합니다. 플러그인 추천은 다음 포스팅을 참고해보셔도 좋을 것 같습니다. https://teck10.tistory.com/222 IntelliJ 플러그인 추천 인텔리제이로 개발하다보니 플러그인일 추가로 설치해야 하는 경우가 있었다. 피씨 여러군데에 옮겨다니며 개발하다보니 플러그인 설치 목록을 정리해보려한다. - IntelliJ 에서 플러그인이란? onpups.pe.kr 1. Auto Import 설정 Auto Import 설정시 아래 두 체크를 해줍니다. - add unambiguous imports on the fly 자동 import옵.. 2024. 2. 11.
REST API 규칙, API란 무엇인가요? API란 무엇인가요? 애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성합니다. 예를 들어, 근무 시간 기록 애플리케이션은 직원의 전체 이름과 날짜 범위를 요청하는 API를 표시합니다. 이 정보가 수신되면 내부적으로 직원의 근무 시간 기록을 처리하고 해당 날짜 범위에서 근무한 시간을 반환합니다. 웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있습니다. 클라이언트 클라이언트는 웹에서 정보에 액세스하려는 사용자입니다. 클라이언트는 API를 사용하는 사람이거나 소프트웨어 시스템일 수 있습니다. 리소스 리소스는 다양한 애플.. 2024. 2. 9.
[JAVA] 객체지향 설계 5원칙 SOLID 원칙 객체지향을 기반으로 개발하는데 있어 좋은 객체지향을 설계하기 위한 원칙이 있습니다. 개발자들이 좋은 객체지향 방식으로 설계되었다고 판단할 수 있는 원칙인데, 이 원칙 없이도 설계할 수 는 있으나, 객체 지향 원칙을 벗어나다보니 이후 유지보수나 리펙토링을 할 때 의견의 차이가 생길 수 있을 것 같습니다. 그러므로 설계할 때 약속된 원칙을 참고해서 설계하면 좋을 것 같아 정의 된 원칙 5개를 정리해보려 합니다. - 좋은 객체지향 설계5원칙(SOLID) • SRP: 단일 책임 원칙(Single Responsibility Principle) • OCP: 개방-폐쇄 원칙 (Open/closed principle) • LSP: 리스코프 치환 원칙 (Liskov substitution principle) • ISP:.. 2024. 2. 8.
웹 서버와 WAS(Web Application Server)의 차이점이 뭘까? 웹 서버와 WAS(Web Application Server)를 같이 연동해서 사용한 적이 있습니다. 성능의 향상을 위해 라는 이유로 둘을 동시에 연동해서 사용했는데 이번에 이 관련해서 정리해보려 합니다. 웹 서버(web server)는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말합니다. 주로 정적 컨텐츠를 클라이언트로 전달하고, 클라이언트로부터 콘텐츠를 전달받거나 처리합니다. 동적 컨테츠가 필요할 때, WAS에 요청을 전달하여 처리한 결과를 클라이언트에게 전달합니다. 웹 애플리케이션 서버(Web Application Server, WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공합니다. 주로 동.. 2024. 2. 8.
[docker] docker-compose docker compose 차이, 버전의 차이 도커를 공부하다 보니 docker compose 라는게 있고 docker-compose 라는게 있는데, 이게 비슷하면서도 완전히 같다고는 생각지 않게되어 한번 포스팅을 하게 되었습니다. 구분하고 사용하는 것이 꼭 필요할까 생각은 되지만, 결과적으로는 구분하는게 나아보입니다. 1. docker compose 확인 2. docker-compose 확인 docker-compose는 설치할때 포함되지 않았었는데, 추가로 설치는 가능하나, 버전을 보면 1.25.0-1 로 확인됩니다. stackoverflow의 글에서도 이 내용이 혼용되어 사용되는 듯 하여 구분을 해보려 하는데 docker-compose가 V1 버전, docker compose가 docker의 plugin개념으로 compose를 지원하는 V2 버전.. 2024. 2. 5.
yaml 과 yml 확장자는 사실 같다. yaml과 yml파일 확장자는 모두 해석 및 구문이 동일합니다. 3글자인가 4글자인가 확장자의 차이가 있긴 하여 다른파일이 아닌가? 생각할 수 도 있지만, 실은 동일한 파일입니다. 이렇게 분리된 이유는 옛날 Windows에서 Extensions는 파일확장자가 3자로 제한되는 특성이 있었기 때문이라고 합니다. 그래서 예전에는 .html 대신 .htm 으로도 쓰였는데 이와 같은 원리입니다. 요즘은 확장자에 3글자를 넣어야 하는 OS 시스템 수준의 시행이 없으니, 4글자인 .yaml로 사용해도 문제없습니다. 2024. 2. 5.
[Linux] brctl 브릿지 네트워크 관리 brctl 이란? Linux 커널에서 이더넷 브리지 구성을 설정, 유지 관리 및 검사하는 데 사용됩니다. 이더넷 브리지는 일반적으로 서로 다른 이더넷 네트워크를 함께 연결하는 데 사용되는 장치로, ifconfig를 보면 별도의 이더넷으로 표시됩니다. brctl을 통해 별도의 이더넷 브릿지를 추가하고 조회도 가능합니다. 도커를 설치하면 도커용 bridge인 docker0 이 만들어지는데, brctl로도 조회가 가능합니다. 설치 sudo apt-get install bridge-utils -y brctl show 2024. 2. 5.
[Docker] 도커 이미지 빌드 문제풀이 따배도 4.2 도커 컨테이너 만들어보기 실습을 직접 풀어본 소스입니다. 2024. 2. 3.
[java] assert 개발 테스트 에서 조건 걸기 Java에서 버그 또는 예상치 못한 상황을 검출하고 적절히 대응하기 위해 사용하는 방법이 있습니다. 주로 exception을 사용할 수 있으며, 특정한 경우 예외를 던져 경우에 대비하고 프로그램이 멈추지 않게 합니다. 다만 특정한 경우에 대비하기 위해 exception을 여러개 배치하기도 합니다. - 주로 Exception은 try catch로 묶어서 사용하거나 throws로 에러를 던지기도 합니다. 또다른 방법으로는 switch나 if else 에 조건을 여러개 넣어가며 검증하는 방법도 있겠습니다. 실제로 들어오는 데이터의 검증이 필요하다면 이를 통해 필터링 할 수도 있습니다. - 유용한 방법이긴 하나, 코드가 상당히 길어져 가독성이 떨어질 수 있습니다. 그러다가 assert 라는 것을 알았는데, jd.. 2024. 2. 3.