728x90
반응형

전체 글 552

Java의 객체지향 프로그래밍 [2] : 오버로딩(overloading)이란, 변수의 초기화

▶ 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(method overloading)' 또는 간단히 '오버로딩(overloading)'이라 한다. ▶ 오버로딩의 조건 같은 이름의 메서드를 정의한다고 해서 무조건 오버로딩인 것은 아니다. 오버로딩이 성립하기 위해서는 다음과 같은 조건을 만족해야한다. 메서드 이름이 같아야한다. 매개변수의 개수 또는 타입이 달라야한다..

JAVA/Java의 정석 2023.06.22

Java의 객체지향 프로그래밍 [1] : 클래스 변수, 인스턴스 변수, JVM의 메모리 구조, 클래스 메서드와 인스턴스 메서드

객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.'라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상 세계를 구현하고 이 가상세계에서 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있다. ▶ 객체지향 언어 객체지향 언어는 기존의 프로그래밍 언어와 다른 전혀 새로운 것이 아니라, 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다. 이러한 규칙들을 이용해서 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해졌다. 1. 코드의 재사용성이 높다. : 새로운 코드를 작성할 때 기존의 코..

JAVA/Java의 정석 2023.06.22

Spring Boot OpenAPI 3.0 + Swagger version 3 적용 및 설정하기, Swagger에 JWT 기능 설정하기

이번 프로젝트를 진행하면서 API 문서 정리가 요구되었고 Swagger 3.0 버전을 적용하여 개발한 API를 정리하고 테스트할 수 있도록 설정하였다. 그에 대한 과정을 정리해보고자 한다. ▶ build.gradle Swagger dependency 적용해주기 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' ▶ OpenAPI 3.0 + Swagger 3.0 Spring Boot에 설정하기 : @OpenAPIDefinition info : 해당 Swagger 페이지가 무엇을 나타내는지 알려주기 위해 작성해준다. @OpenAPIDefinition( info = @Info(title = "User-Service API 명세서",..

Spring/API 2023.06.21

MySQL 시스템 변수 특징 / 글로벌 변수와 세션 변수 / 정적 변수와 동적 변수 / SET PERSIST

MySQL 서버는 기동하면서 설정 파일의 내용을 읽어 메모리나 작동 방식을 초기화하고, 접속된 사용자를 제어하기 위해 이러한 값을 별도로 저장해 둔다. MySQL 서버에서는 이렇게 저장된 값을 시스템 변수(System Variables)라고 한다. 각 시스템 변수는 MySQL 서버에서 아래 명령어로 확인할 수 있다. $ mysql > SHOW GLOBAL VARIABLES; 시스템 변수(설정) 값이 어떻게 MySQL 서버와 클라이언트에 영향을 미치는지 판단하려면 각 변수가 글로벌 변수인지 세션 변수인지 구분할 수 있어야 한다. ▶ 시스템 변수가 가지는 5가지 속성 Cmd-Line : MySQL 서버의 명령행 인자로 설정될 수 있는지 여부를 나타낸다. 즉, 이 값이 "Yes"이면 명령행 인자로 이 시스템 ..

CS/MySQL 2023.06.21

MySQL 5.7에서 MySQL 8.0 업그레이드 고려사항 및 차이점, MySQL 서버 설정

▶ MySQL 8.0 업그레이드 시 고려 사항 MySQL 8.0에서는 상당히 많은 기능들이 개선되거나 변경 됐다. 그 중에서도 MySQL 5.7 버전과 8.0 버전의 기본적인 부분의 차이점과 MySQL 8.0버전의 기본적인 부분의 차이점과 MySQL 8.0에서는 사용할 수 없는 기능들이 몇 가지 있다. 그래서 반드시 MySQL 8.0으로 업그레이드하기 전에 아래 내용이 영향을 미치지 않는지 검토해 봐야 한다. 사용자 인증 방식 변경 : MySQL 8.0 버전부터는 Caching SHA-2 Authentication 인증 방식이 기본 인증 방식으로 바뀌었다. MySQL 5.7에 존재했던 사용자 계정은 여전히 Native Authentication 인증 방식을 사용하겠지만 MySQL 8.0 버전에서 별도의 ..

CS/MySQL 2023.06.21

네트워크 관리사 2급 실기 라우터(Router) 정리 [2]

문제) Router1 Telnet에 접근하는 Password를 icqa로 설정하고 로그인하시오. Router1의 설정을 변경하는 것이기 때문에 Router1의 Console창 열기 en (enable) : 사용자 모드에서 관리자 모드로 전환 conf t (configure terminal) : 관리자 모드에서 전역설정 모드로 전환 line vty 0 4 : Telnet에 접근하는 명령어 password icqa : 비밀번호를 icqa로 설정 login : 로그인하기 exit : 텔넷에서 나가기 exit : 전역설정 모드에서 나가기 copy r s : 저장 명령어(모든 라우터 문제의 끝) 문제) 텔넷 연결 후 3분 50초 동안 입력이 없으면 세션이 자동 종료되도록 설정하시오. en (enable) : 사..

MacOS M1 간단 MySQL 설치 및 Homebrew로 설치하기, Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러 해결

MariaDB가 설치되어 있는 상태에서 homebrew로 mysql까지 설치하려고 하니 충돌이 발생하고 오류가 너무 많이 발생해서 삽질한 거 정리할 겸 남겨보려고 합니다. 저는 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 해당 오류가 계속해서 발생했고 본 에러를 해결하기 위해 처음부터 다시 진행하는 방법으로 해결하였습니다. 만약 위와 같은 에러가 발생한다면 아래와 같이 진행하시면 도움이 될 것 같습니다. 0. Homebrew 설치 Homebrew는 설치가 이미 되었다고 가정하고 시작합니다. 만약 아직 homebrew가 설치되어있지 않으시다면 아래 글을 통해 설치 먼저 바랍니다. https://eunhee-programm..

CS/MySQL 2023.06.20

네트워크 관리사 2급 실기 라우터(Router) 정리 [1]

문제) Router 1의 FastEthernet 0/0의 IP를 192.168.0.100/24로 설정하시오. Router 1의 설정을 변경하는 것이기 때문에 Router 1의 Console창 열기 2. en (enable) : 사용자 모드에서 관리자 모드로 전환 3. conf t (configure terminal) : 관리자 모드에서 전역설정 모드로 전환 → Router문제에서 위 과정은 반복 과정이니 암기 4. interface fastethernet 0/0 : 문제에 제시된 fastethernet 0/0 으로 이동 5. IP 설정을 위해 ip add 192.168.0.100 255.255.255.0 : IP/서브넷 마스크 설정 문제에 제시된 서브넷 마스크 24를 8비트 형태로 변환하여 입력해주어야 ..

JIT 컴파일러와 Java Hotspot

▶ JIT 컴파일러란? JIT(Just-In-Time) 컴파일러는 JVM(Java Virtual Machine)에서 사용되는 컴파일러이다. JIT 컴파일러는 프로그램의 실행 시점에 바이트코드를 기계어로 변환하여 실행 속도를 향상시키는 역할을 수행한다. ▶ JIT 컴파일러 등장 배경 Java 언어는 컴파일러에 의해 바이트코드로 변환되며, JVM은 이러한 바이트코드를 인터프리터를 통해 한 줄씩 해석하고 실행한다. 하지만 인터프리터 방식은 실행속도가 느릴 수 있다. 이를 개선하기 위해 도입된 것이 JIT 컴파일러이다. ▶ JIT 컴파일러 동작 과정 JIT 컴파이러는 프로그램이 실행되는 동안 인터프리터가 반복적으로 실행되는 코드를 감지하고, 이를 동적으로 기계어로 컴파일하여 캐시에 저장한다. 이렇게 컴파일된 기..

JAVA/Java의 정석 2023.06.18
728x90
반응형