분류 전체보기 233

[JAVA] 패키지와 클래스 (같은 이름의 클래스 import)

패키지(package) 자바는 클래스의 구분을 위해 패키지를 사용합니다. 패키지는 클래스들을 논리적으로 그룹화하여 충돌을 방지하고, 클래스의 이름을 명확하게 지정하는 데 도움을 줍니다. FQCN (Fully Qualified Class Name) 클래스의 정규화된 이름은 패키지를 포함하여 클래스를 명시적으로 지정하는 방법입니다. 이를 사용하면 라이브러리명이 겹칠 때 충돌을 피하고 원하는 클래스를 명확히 지정할 수 있습니다. 만약 같은 이름의 클래스가 다른 패키지에 있을 때, import 문을 사용하여 해당 클래스를 구분하면 됩니다. 자바에서 import 문은 다음과 같이 사용됩니다: // 패키지가 com.example.package1인 MyClass 클래스를 import import com.example..

Backend/JAVA 2023.07.25

JAVA 문자열 비교 (== 연산자와 equals 메서드의 차이)

class Main { public static void main(String[] args) { String str1 = "Programming"; // true or false String str2 = "Programming"; String str3 = new String("Programming"); System.out.println(str1==str2); // true System.out.println(str1==str3); // false System.out.println(str1.equals(str3)); // true System.out.println(str2.equals(str3)); // true } } str1==str2: str1과 str2는 모두 문자열 리터럴인 "Programming"..

Backend/JAVA 2023.07.25

자바 메모리 구조(with Constant Pool)

자바의 메모리 구조는 다음과 같이 크게 세 가지 영역으로 나뉘어집니다. 자바 프로그램이 실행되면, JVM은 아래 세 영역을 생성하고 메모리를 관리합니다. 이렇게 분리된 메모리 구조는 자바의 안정성과 자동 메모리 관리를 가능하게 합니다. 1. 메소드 영역 (Method Area 또는 클래스 영역): 모든 스레드가 공유하는 영역으로, 클래스 정보와 클래스 변수(static 변수)가 저장됩니다. 클래스 정보는 클래스의 구조와 멤버 변수, 메서드 코드 등을 포함합니다. JVM이 실행될 때 클래스 로더에 의해 클래스 파일이 로드되고 파싱되어 메소드 영역에 저장됩니다. 상수 풀(Constant Pool): 상수 풀은 클래스 파일 내부에 위치한 특별한 메모리 영역입니다. 클래스 파일에는 리터럴 값(문자열, 정수, 부..

Backend/JAVA 2023.07.25

동적 속성 바인딩(콜론(:), v-bind 디렉티브) / 조건부 할당

Vue에서 동적 속성 바인딩을 수행할 때 사용하는 콜론(:)은 "v-bind" 디렉티브라고 불립니다. "v-bind" 디렉티브를 사용하면 Vue 템플릿에서 HTML 속성에 동적으로 값을 바인딩할 수 있습니다. 주로 HTML 속성을 Vue 컴포넌트의 데이터나 계산된 속성과 연결할 때 사용됩니다. 조건문과 삼항 연산자를 사용하여 조건부 할당이 가능합니다. 예제) 다양한 속성의 예시 {{ datas.type === 'a' ? item.AId : item.BId }}

Frontend/vue3 2023.07.19

다양한 형태의 axios

1. 다양한 형태의 axios axios는 서버로 HTTP 요청을 보내고 응답을 받는 데 사용되며, 다양한 형태로 사용할 수 있습니다. get요청의 예시 입니다. 1-1. 기본적인 GET 요청: await axios.get(url); 가장 기본적인 GET 요청을 보내는 방법입니다. axios.get() 메서드를 사용하여 지정된 url로 GET 요청을 보내고, 응답을 받습니다. 이때 await 키워드를 사용하여 비동기적으로 응답을 기다립니다. 1-2. GET 요청에 파라미터 전달: await axios.get(url, { params: params }); GET 요청 시 쿼리 파라미터를 전달하는 방법입니다. axios.get() 메서드의 두 번째 인자로 객체를 전달하고, params 속성을 사용하여 쿼리 ..

요소 width 가져오는 속성과 메서드 (스크롤바 너비)

position이 absoulte인 요소의 위치를 width에 따라 설정하던 중 스크롤바의 생성 여부에 따라 위치가 달라졌습니다. 스크롤바 넓이를 제외한 넓이를 구하기 위해 다양한 width를 가져오는 속성에 대해 알아봤습니다. offsetWidth: offsetWidth는 요소의 전체 너비를 반환하는 속성입니다. 이 너비에는 요소의 가시적인 너비, 안쪽 여백(padding), 테두리(border) 및 수직 스크롤바의 너비가 포함됩니다. offsetWidth는 읽기 전용 속성으로, 픽셀 단위의 정수값을 반환합니다. clientWidth: clientWidth는 요소의 내용 영역의 너비를 반환하는 속성입니다. 내용 영역은 요소의 가시적인 너비와 스크롤바를 제외한 영역입니다. 내용 영역은 안쪽 여백(padd..

Frontend/javaScript 2023.07.05

[MariaDB] 중복 파일명 처리(이름 뒤에 seq 붙이기)

가장 간단하게는 파일명이 중복되지 않을 때 까지 반복문을 사용하여 확인 할 수 있다. 예시 코드입니다. //java String orgName = fileObj.getFileName(); String newName = NewNameService.getNewName(fileObj); int idx = 1; while(newName != null){ fileObj.setFileName(orgName + "(" + (idx+1).toString() + ")"); newName = NewNameService.getNewName(fileObj); } 하지만 저는 아래와 같은 생각 때문에 쿼리한번으로 처리 하고자 했습니다. 1. 성능: 반복문을 사용하는 경우: 각각의 fileName를 가져와서 (idx)를 붙여서 ..

SQL/RDBMS 2023.07.03

절대 위치 구하기 (제이쿼리 사용하지 않고)

제이쿼리를 사용하지 못 하는 상황에서 한 element의 왼상단에 아이콘을 띄우는 작업을 하려고 했다. 처음에 style.top 속성(offsetTop과 동일)을 사용했는데 div안에 element가 있을 경우에 위치에 오류가 있었다. icon.style.position = 'absolute'; icon.style.top = element.style.top.replace('px', '') - 27 + 'px'; icon.style.left = element.style.left; 제이쿼리를 사용할 때 let top = $(element).offset().top let lfet = $(element).offset().left 제이쿼리를 사용하지 않고 직접 계산 function getElementAbsolut..

Frontend/javaScript 2023.06.28

css 선택자와 표기법

1. 아이디 선택자(ID Selector): 특정 아이디를 가진 요소를 선택합니다. #my-id { font-weight: bold; } 2. 클래스 선택자(Class Selector): 특정 클래스를 가진 요소를 선택합니다. .my-class { color: red; } 3. 요소 선택자(Element Selector): 특정 HTML 요소를 선택합니다. p { text-align: center; } 4. 자식 선택자(Child Selector): 부모요소 > 자식요소: 부모 요소의 직계 자식 요소를 선택합니다 .my-class > li (x) .my-class> ul > li (o) 이 선택자는 클래스 이름이 "my-class"인 요소의 직계 자식인 요소를 선택합니다. Item 1 Item 2 Ite..

Frontend/css 2023.06.23