분류 전체보기298 [TIL] 파이썬(Python)의 구조 클래스와 인스턴스 클래스란 ? 속성과 데이터를 변형하는 함수를 같은 이름 공간에 묶어 새로운 형식을 정의하는 것 인스턴스란 ? 클래스를 복사해서 생성한 복사본 클래스와 인스턴스 객체의 관계 쿠키 = 클래스 쿠키틀을 통해 찍어낸 과자 = 인스턴스 클래스 정의 문법 (define) 클래스의 멤버는 멤버 변수와 멤버 메서드로 구성 class 라는 키워드를 사용 클래스에는 멤버 변수를 초기화할 수 있고, 멤버 메소드를 정의 멤버 메소드는 def 라는 키워드를 사용하고, 첫 번째 매개변수(인자)는 예약되어 있는 자리여서 self 라는 단어 사용 예제 Person 클래스 정의, p1 이라는 인스턴스 객체 생성 예제 # class 클래스명(상위클래스): #클래스에 대한 설명 #def 함수명(self, 인자1, 인자2.. 개발 스터디 2023. 1. 24. [Database] 뷰(View)의 개념 및 특징 뷰(View)란 무엇인가? 뷰는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체이며, 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화 한다. 뷰(View) 사용목적 여러 테이블의 조인과 그룹핑과 같은 복잡한 쿼리를 뷰에 저장시켜놓고, 저장한 뷰의 정보만 가져와 더 쉽고 편리하게 사용할 수 있다. (일종의 함수 형태) 데이터 보안에서도 유리한데, 뷰를 보면 컬럼과 데이터만 공개되므로 .. Database 2023. 1. 12. 마이크로서비스 아키텍처(MSA)의 기본 개념 소개 MSA 소개 MSA 란? 하나의 어플리케이션을 다수의 독립적인 서비스들의 집합으로 구성하는 것으로 서비스 지향 아키텍처(SOA) 스타일의 소프트웨어 개발 기법이다 각자 별도의 프로세스에서 실행되며, HTTP API 같은 가벼운 매커니즘으로 통신하는 작은 애플리케이션이다. 작은 서비스들은 각자의 비즈니스 기능을 담당하고 완전 자동화 된 절차에 따라 독립적으로 배포된다. 각 서비스는 서로 다른 프로그래밍 언어나 서로 다른 데이터 저장 기술을 사용할 수 있음 MSA 용어 Microservice Architecture MSA Microservices Microservices 란? 마이크로서비스는 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한.. 개발 스터디 2022. 12. 21. [Network] CIDR (Classless Inter-Domain Routing) CIDR 이란? Classless Inter-Domain Routing 'CIDR', 사이더는 IP 주소를 할당하고 패킷을 라우팅하는 방식 중 하나이며 다음과 같은 장점이 있다. 급격히 부족해지는 IPv4 주소를 보다 효율적으로 사용하게 해준다. 접두어를 이용한 주소 지정 방식을 가지는 계층적 구조를 사용함으로써 인터넷 광역 라우팅의 부담을 줄여준다. CIDR 표기법 먼저 IPv4는 아래 그림과 같이 각 1 byte 크기의 Octect 4개로 구성되어 있다. 0.0.0.0 ~ 255.255.255.255 범위의 주소 체계를 가지고 있다. 상위 2개는 네트워크 영역 구분을 위한 Network ID 를 의미한다. 하위 2개는 호스트 식별을 위한 Host ID 를 의미한다. 각 Octect 값을 10진수에서 .. 개발 스터디 2022. 12. 19. [Nginx] 차세대 경량 웹 서버 엔진엑스(Nginx)란? NGINX 엔진엑스(NGINX)는 차세대 웹서버로 불리며, 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache 보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다. 동시접속자가 약 700명 이상이라면 서버를 증설하거나 NGINX 환경을 권장한다고 한다. 현재는 Apache 시장 점유율이 가장 높지만, 아마존 웹서비스(AWS) 의 시장 점유율은 44%에 달할정도로 가볍고 성능이 좋은 엔진이라고 한다. NGINX 는 HTTP 웹 서버로 활용되기도 하고, 리버스 프록시 서버 (Reverse proxy server)로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다. NGINX (웹 서버)의 역할 웹 서버의 역할을 복습?하자면, 1. 정적 파일 처리.. Front/WebServer 2022. 12. 15. [IntelliJ] VisualVM 설치 및 인텔리제이 연동하기 VisualVM Download VisualVM Download Site VisualVM 압축파일 해제 인텔리제이 VisualVM 설치하기 Settings - Plugins - VisualVM 검색 후 Install Settings - VisualVM Launcher 설정 이동 VisualVM executable path 설정 : VisualVM 설치한 경로에 visualvm 프로그램 선택 Custom JDK home path 설정 : JDK 설치되어 있는 경로 선택 설정을 적용하고 나면 인텔리제이 상단에 다음과 같은 아이콘이 생긴것을 확인할 수 있다. 만약 바로 아이콘이 생기지 않는다면 인텔리제이를 재시작해보자. 각각 Run 과 Debug 아이콘으로 애플리케이션을 실행하면 VisualVM이 실행된다. .. IDE/IntelliJ 2022. 12. 8. [Windows] 윈도우 시간 동기화 설정하기 사실 윈도우 시간이 틀어지는 경우가 있는 지, 주기적으로 시간 동기화를 하고 있는 지 몰랐다. Springboot 기반 서비스를 스케줄러를 통해 돌리는데, 설정한 시간대로 작업을 하지 않고 불규칙적인 시간으로 작업을 하는 것을 보고도 코드 설정문제라 생각했다. 동일한 서비스를 리눅스 환경에서 돌리면 설정한 값의 시간대로 동작하는 것을 보고 윈도우의 시간설정 문제일 수 있다는 것을 의심하기 시작하면서 윈도우 시간 동기화 설정을 하게되었다. 수동으로 시간 설정하기 1. 제어판 - 시계 및 국가 선택 2. 시간 및 날짜 설정 선택 3. 날짜 및 시간 변경 클릭 4. 원하는 날짜 혹은 시간 설정후 확인 클릭 동기화를 통해 자동으로 시간 맞추기 1. 제어판 - 시계 및 국가 선택 2. 시간 및 날짜 설정 선택 3.. 운영체제 2022. 12. 1. [Java] 문자열, 객체, 배열 Null Check StringUtils org.apache.commons.lang3.StringUtils 요약 Empty : Null, 공백문자("") Blank : Null, 공백문자(""), whitespace(" ") Empty StringUtils.isEmpty : Null 혹은 공백문자("") 이면 true 값 반환 StringUtils.isNotEmpty : Null 혹은 공백문자("") 이면 false 값 반환 StringUtils.isAnyEmpty : 문자들 중 Null 혹은 공백문자("") 있을 시 true 값 반환 StringUtils.isNoneEmpty : 문자들 중 Null 혹은 공백문자("") 있을 시 false 값 반환 StringUtils.isAllEmpty : 모든 문자열들이 Null 혹은.. JVM/Java 2022. 11. 18. [SQL] Database Custom Order By (Oracle/Tibero, MySQL, PostgreSQL) 기본 정렬 방식을 떠나 특정 컬럼의 특정 값, 혹은 값의 순서를 커스텀하고 싶을 때 각 Database 마다 어떻게 사용되는 지 살펴보자 예제 컬럼 명 : COLUMN1 허용 값 : 검정, 노랑, 빨강, 파랑 Tibero / Oracle 아래 두 방법 모두 IF ELSE 문의 형태와 유사하다. CASE WHEN 문 SELECT * FROM TBL ORDER BY (CASE WHEN COLUMN1 = '빨강' THEN 1 WHEN COLUMN1 = '검정' THEN 2 WHEN COLUMN1 = '파랑' THEN 3 ELSE 4 END) ASC -- 혹은 DESC COLUMN1의 값이 빨강일 경우는 1 값으로 대체, 검정일 경우는 2 값으로 대체, 파랑일 경우는 3 값으로 대체, 나머지(노랑)일 경우 4 .. Database/SQL 2022. 11. 13. [JUnit] 소개 - 2. Assertion 과 Assumption Assertion 실제 테스트에서 검증하고자 하는 내용을 확인하는 기능 org.junit.jupiter.api.Assertions.* Method 메소드명 설명 fail 무조건 실패 assertTrue 조건이 True 이면 성공 assertFalse 조건이 False 이면 성공 assertNull 조건이 Null 이면 성공 assertNotNull 조건이 Not Null 이면 성공 assertEquals 기대값(expected) 와 실제값(actual)이 동일하면 성공 assertArrayEquals 두 Array가 동일하면 성공 assertIterableEquals 두 Iterable이 동일하면 성공 assertLinesMatch 두 Stream이 동일하면 성공 assertNotEquals 기대값(ex.. JVM/JUnit 2022. 11. 1. [JUnit] 소개 - 1. 테스트 종류와 JUnit 이란 테스트의 종류 단위 테스트 (Unit Test) - TDD 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상 동작을 검증하는 테스트 테스트 대상 단위 클래스 메소드 테스트 단위의 크기 작을수록 복잡성이 낮아지고, 테스트 활용이 더 쉬워진다. 통합 테스트 (Integration Test) 단위 테스트보다 더 큰 동작을 위해 여러 모듈을 모아 의도대로 협력하는 지 검증하는 테스트 외부 라이브러리(API, DB 등..)까지 묶어 검증할 때 사용한다. 단위 테스트보다 더 많은 코드를 테스트하기 때문에 신뢰성이 떨어진다. 또한, 에러 발생 시 확인이 쉽지 않아 유지보수가 힘들다. 인수 테스트 (Acceptance Test) 사용자 시나리오에 맞춰 수행하는 테스트 단위/통합 테스트와 달리 비즈니스에 초점을 둔다 .. JVM/JUnit 2022. 11. 1. [알고리즘] 세그먼트 트리(Segment Tree) 알고리즘 동작 원리 및 구현하기 세그먼트 트리 알고리즘 개요 세그먼트 트리 알고리즘은 트리 형태의 자료구조를 사용한다. 특정 구간 내 데이터에 대한 연산(쿼리)을 빠르게 구할 수 있는 트리 알고리즘이다. 키워드 구간 범위 시간복잡도 데이터 변경 : O(logN) 연산 : O(logN) 데이터 변경 시마다 M번 연산 : O((logN + logN) * M) = O(MlogN) 특징 누적 합을 담은 트리라고 가정하자. N = 10 (노드의 개수 : 10) 인 그림에서 노드안에 적힌 순서는 값이 아닌 각 노드의 고유 번호라고 했을 때, 각 노드가 저장하고 있는 합의 범위(구간)를 나타낸 것이다. 각 노드는 다음과 같은 의미를 가진다. 리프 노드 : 해당 노드의 값 자체 리프 노드가 아닌 노드 : 왼쪽 자식과 오른쪽 자식의 합(누적 합 예시).. Algorithm/Tree & Graph 2022. 10. 26. 이전 1 2 3 4 5 6 ··· 25 다음 추천 글 728x90 반응형