728x90
728x90

전체 글 117

[Mac M1] 맥북 한영 전환 Capslock 딜레이 해결 방법

맥북을 사용하게 되면 한영을 전환할 때 Capslock 키를 누르게 된다. 타이핑 중 분명히 눌렀다. (게임할 때 변명하듯 분명히 눌렀는 데) 왜 한영 전환이 안 될까 싶은 순간이 많았다. 별것도 아닌 걸로 너무 신경 쓰이고 불편했다. 여러 가지 방법을 찾아봤지만(파일 삭제, 환경 설정 등...) 체감도 거의 안 되고 오히려 더 불편해지는 느낌이었다.. 저 상태로는 앞으로도 무척 불편할 것이다.. 해결 뒤 1. Karabiner 설치 1.1 Homebrew 설치 시(본인은 설치하였기 때문에 1.1 방법으로!) brew install --cask karabiner-elements 1.2 Homebrew 미설치 시 공식 홈페이지에서 설치 https://karabiner-elements.pqrs.org Ka..

[JAVA : 클래스와 객체]8. 추상화 & 추상클래스

추상화 & 추상클래스 추상화는 상속에서만 사용될 수 있는 개념이다. "추상적이다"라는 뜻은 "구체적이지 않다"라는 말과 일맥상통한다. 즉, 추상화란 구체적으로 무언가를 만드는 것이 아니다. 이 추상화 개념을 프로그래밍과 연관하여 생각한다면, 부모 클래스에서 추상적으로 메서드를 만들어 놓으면, 자식 클래스에서 해당 메소드를 다시 구체화한다. public class Main { public static void main(String[] args) { //Animal animal = new Animal("동물"); 불가능합니다. Lion lion = new Lion("사자"); lion.Growl(); Cat cat = new Cat("고양이"); cat.Growl(); } } abstract class An..

[JAVA : 클래스와 객체]7. 오버라이딩

오버라이딩 오버라이딩(overriding)이란 부모 클래스의 멤버를 자식 클래스에서 재정의하여 사용하는 것을 말합니다. public class Main { public static void main(String[] args) { Parent p = new Parent(); Child c = new Child(); p.print(); c.print(); } } // 부모 클래스 정의 class Parent { public int iInt; public void print() { System.out.println("Parent Class"); } } // 자식 클래스 정의 class Child extends Parent{ public void print() { System.out.println("Child ..

[JAVA : 클래스와 객체]6. 상속

상속, 부모클래스와 자식클래스 상속의 사전적 의미는 1) 뒤를 잇다. 2) 죽은 사람의 권리와 의무를 이어받는 일입니다. 일반적으로 부모가 자식에게 재산, 권리, 의무 등을 물려주는 것을 상속이라고 합니다. 프로그래밍에서의 상속 또한 비슷한 역할을 합니다. 물론 일반적인 재산, 권리, 의무를 물려주는 것이 아니라 "클래스의 멤버를 물려준다."는 차이점이 있습니다. 이때 물려주는 클래스를 "부모 클래스", 물려받는 클래스를 "자식 클래스"라고 얘기합니다. public class Main { public static void main(String[] args) { Parent p = new Parent(); Child c = new Child(); p.print(); c.print(); } } // Pare..

[정보처리기사 필기] 2022년도 2회 합격 후기

한창 필기 공부 중 합격 수기글들을 보고 나도 써봐야지라는 마음으로 동기부여가 많이 되었었다. 준비 일 수 : 약 한 달 반 준비 교제 : 2022 시나공 정보처리기사 필기 + cbq (개인적인 공부 준비물 : 아이패드와 팬슬) 비전공자, 약 7~8개월 동안 국비교육 연수원에서 배운 수준으로 시작 공부법 일단 한 달 반이라는 준비일 수는 여러 시행착오 끝에 나만의 공부법을 체득하고 본격적으로 공부한 일자이다. 시행착오의 기간까지 합치면 더 길어지겠지만 사람마다 차이가 있으므로 약 2~3달 정도가 적당한 것 같다....지만 솔직히 시행착오를 겪는 기간에 얼마나 열심히 했냐라고 질문하신다면 그냥 놀았습니다라고 말하는 수준이긴 하다. 전형적으로 발등에 불 떨어지면 해나가는 스타일... 시행착오 기간 처음 시작..

[Spring / Javascript] data-* 태그

예제를 따라가던 도중 data-oper..? 라는 생소한 태그가 등장하였다.. 무엇일까 궁금해서 찾아보니까 여러 내용들이 나왔다. data-*를 사용하는 이유는 정보를 받아올 때 보다 간결하게 하기 위함이었습니다. 예를 들어 input 요소에 type="hidden"을 붙여 정보를 받아올 때 숨기는 방법이 있겠지만 아에 버튼 타입에 받아오는 형식으로도 가능하다는 것에 의의가 있는 것 같습니다. data-*속성은 표준이 아닌 속성이나 추가적인 DOM 속성, Node.setUserData()과 같은 다른 조작을 하지 않고도, 의미론적 표준 HTML 요소에 추가 정보를 저장할 수 있도록 해줍니다. HTML내에서 어느 엘리멘트에나 data-로 시작하는 속성은 무엇이든 사용할 수 있고, 화면에 안 보이게 글이나 ..

[Mac][spring]404 error 중 ojdbc 인식 오류

톰캣 실행 시 이런 오류와 함께 404 error 가 나온다. 많은 오류사항들이 있겠지만 Caused by: 맨 밑의 내용에서 핵심적인 오류 해결 힌트를 자주 확인할 수 있었다. 즉 jdbcUrl을 수락할 수 없다고 하는 것. 바로 Ojdbc6.jar 상태를 확인하지 않을 수가 없다. Mac m1칩 환경에서는 ojdbc가 원활히 호환되지 않는다..는 가정에 spring에서 본인이 할 수 있는 해결방법은 2가지였다. 필자는 Mac 사용자이고 아직 많이 부족한 상태이기 때문에 Parallels 라는 가상 os 지원 프로그램을 사용하여 window 10 운영체제에 ojdbc파일을 넣어 Mac 환경에서도 쓸 수 있도록 하고 있다. 해결 방법 1 : ojdbc6.jar 파일 직접 올리기 1.1 configure ..

[spring] JSTL c: / fmt: 태그 인식오류

예제 확인 중 c, fmt 태그가 인식 오류가 나왔다. 당연히도 결과 화면에는 테이블 결과에 아무것도 나오지 않았다. 이유는 넣지 않았기 때문이다. Maven Update 해주고 다시 프로젝트를 돌려보니.. 작성일과 수정일이 출력되지 않았다.. fmt태그도 인식오류였다.. 똑같은 방법으로 추가하고 maven update 했더니 편안하게 되었다 ..하핳...

[Spring] Log4J import 에러

스프링 예제를 공부하던 중 잘 되던 Log4j 임포트가 안 되었다,, 사실 몇 번 있었던 일이었고, 해결 방법도 여러 번 구글링 해서 해결했었는데 매번 검색하기보다 외울 겸 해서 메모해두기로 했다.. 문제의 화면이다.. 이런 식으로 Maven에서 Log4j가 회색으로 꺼져있는 것을 확인할 수 있다 거두절미하고 바로 해결방법! porm.xml에서 runtime 부분을 주석처리를 하면 된다! 그리고 maven update 해주면 Maven에서도 Log4j가 활성화되었고, 빨간 줄이 없어졌다!

[JAVA : 클래스와 객체]5. static

static static 은 메서드 혹은 변수에 붙여 사용할 수 있는데 이를 클래스에서 유용하게 사용할 수 있습니다. 만약 클래스 안의 멤버에 static이 붙으면 그 멤버는 클래스의 객체를 선언하지 않고 바로 콜해서 사용할 수 있습니다. import java.io.*; class Main { public static void main(String[] args) { ClassExample.mInt = 3; ClassExample.Print(); ClassExample c = new ClassExample(); c.mInt = 20; c.Print(); } } class ClassExample { public static int mInt; public static void Print() { System.o..

[JAVA : 클래스와 객체]4. 접근제한자

- 접근제한자 접근제한자로 OOP의 4가지 특징 중 캡슐화를 가장 잘 표현할 수 있습니다. 접근제한자는 멤버 변수 및 메서드를 선언할 때 사용하며, 접근제한자를 통해 멤버 변수 및 메소드를 공개하는데 있어서 제약을 걸 수 있습니다. 접근제한자를 통해 데이터 접근을 제한한 예시입니다. import java.io.*; class Main { public static void main(String[] args) { ClassExample ce; ce = new ClassExample(); ce.mDouble = 10;// 오류 발생 ce.CE_Print_mDouble(); ce.CE_Set_mDouble(30); ce.CE_Print_mDouble(); } } class ClassExample { privat..

[JAVA : 클래스와 객체]3. 생성자(constructor)

- 생성자(constructor) 생성자는 클래스에서 특별한 메서드입니다. 일반적인 메서드는 사용자가 호출할 때에 한해 동작하지만 생성자는 사용자가 객체를 생성할 때 자동으로 호출되는 메서드입니다. 생성자는 return 형을 사용하지 않으며 클래스와 동일한 이름을 가져야 합니다. import java.io.*; class Main { public static void main(String[] args) { ClassExample ce; System.out.println("ce object Called"); ce = new ClassExample(); System.out.println("ce Object Created"); } } class ClassExample { ClassExample() { Syst..

[JAVA : 클래스와 객체]2. 멤버

- 멤버(Member) 멤버란 클래스를 구성하는 요소를 뜻하며 메서드와 변수로 이루어져 있습니다. 클래스는 멤버를 통해 내부의 데이터를 저장하거나 연산할 수 있는데, 이때 클래스 내부의 변수를 "멤버 변수"라고 칭합니다. 아래 예제는 간단하게 작성할 수 있는 클래스 코드입니다. class ClassExample { double mDouble; void CE_Print_mDouble() { System.out.println(mDouble); } void CE_Set_mDouble(double dInput) { mDouble = dInput; } } 위 클래스는 ClassExample 이라는 이름으로 정의되었으며, mDouble 이라는 double형 멤버변수 CE_Print_mDouble라는 void형 메소..

[JAVA : 클래스와 객체]1. 클래스와 객체

- 클래스와 객체 클래스는 사용자가 직접 정의하여 사용할 수 있는 자료형입니다. 클래스와 기본 자료형은 형태의 차이점을 갖지만 '형식과 사용 방법을 명시한 실체 없는 틀'이라는 공통점을 갖고 있기 때문에, 자료형과 변수가 항상 짝을 이루는 것처럼 클래스 또한 객체와 짝을 이룹니다. 즉, '객체'는 '클래스'라는 자료형으로 만들어진 변수라고 할 수 있습니다. 클래스는 객체가 선언되었을 때 실체를 가지게 되며, 객체를 통해 클래스에 포함된 다양한 데이터를 다룰 수 있습니다. 우리 실행활에서 클래스와 객체를 비유할 수 있는 아주 좋은 예시가 있습니다. 바로 붕어빵 틀과 붕어빵의 관계입니다. 클래스는 붕어빵 틀이고, 객체는 붕어빵에 비유한 다음 두 문장이 있습니다. 1. 붕어빵 틀 없이 붕어빵이 만들어질 수 없..

[JAVA : 표준 입출력]3. 키보드 입력

- 키보드 입력 Scanner는 입력 관련 클래스이므로 객체를 통해 사용할 수 있습니다. import java.io.*; import java.util.Scanner;// Scanner 사용시 명시 필수! class Main { public static void main(String[] args) { int iVal; double dVal; Scanner scanner = new Scanner(System.in); System.out.print("정수를 입력해주세요 : "); iVal = scanner.nextInt(); System.out.println("입력 정수 : " + iVal); System.out.print("실수를 입력해주세요 : "); dVal = scanner.nextDouble(); ..

[JAVA : 표준 입출력]2. 콘솔 출력

print() 메소드는 데이터를 줄 바꿈 없이 출력할 때 사용합니다. public void print(boolean b) public void print(char c) public void print(int i) public void print(long l) public void print(float f) public void print(double d) public void print(char[] s) public void print(String s) public void print(Object obj) print() 메서드는 여러 데이터 타입으로 오버로딩 되어있어 데이터 타입에 신경쓸 필요 없이 사용가능하도록 되어 있습니다. 주의할 점은 반드시 파라미터가 하나 있어야 한다는 것입니다. println(..

[정보처리기사] 블랙박스 테스트 / 화이트박스 테스트

I. 사용자 관점의 테스트 방법, Black Box Test 가. Black Box Test의 정의 사용자가 소프트웨어 또는 제품에 대한 요구사항과 결과물이 일치하는 지 확인하기 위한 테스트 기법 나. Black Box Test 기법 동등 분할 기법 (Equivalence Partitioning 프로그램의 입력 도메인을 테스트 케이스가 산출될 수 있는 데이터 클래스로 분류하는 방법 경계값분석기법 (Boundary Value Analysis) 입력 조건의 중간 값보다 경계 값에서 에러가 발생 될 확률이 높다는 점을 이용하여 테스트 케이스를 생성 오류 예측 기법 (Error Guessing) 각 시험 기법들이 놓치기 쉬운 오류들을 감각 및 경험으로 찾아보는 방법 원인 결과 그래프 기법 (Cause Effec..

[JAVA : 표준입출력]1. 표준입출력

- 표준입출력 System.out.print 혹은 System.out.println을 사용하여 변수 값을 확인하거나 문자열을 출력할 수 있습니다. 이렇게 컴퓨터 내부의 데이터를 컴퓨터 외부로 보여주는 기능을 출력 기능이라고 합니다. 출력 기능을 담당하는 장치를 출력 장치라고 부르며, 모니터, 스피커, 프린터 등이 이에 해당합니다. 반대로 외부에서 컴퓨터 내부로 데이터를 입력할 수 있는 기능을 입력 기능이라고 합니다. 여기에는 마우스, 키보드, 마이크 등과 같은 입력장치 들이 사용됩니다. 현재 배우고 있는 프로그래밍 환경을 "콘솔"이라고 부릅니다. 콘솔은 대표적인 CLI(Command Line Interface) 개발 환경으로, CLI 환경은 글자를 이용한 입출력 환경을 뜻합니다. 이렇게 콘솔을 통하여 데..

[JAVA : 메서드]5. JAVA 표준 API

- JAVA 표준 API API(Application Programming Interface)란 자바 시스템을 제어하기 위해서 자바에서 제공하는 명령어들을 의미합니다. JDK를 설치하면 자바 시스템을 제어하기 위한 API를 제공합니다. 자바 개발자들은 자바에서 제공한 API를 이용해서 자바 애플리케이션을 만들게 됩니다. 패키지 java.lang.*의 클래스들도 자바에서 제공하는 API 중의 하나라고 할 수 있습니다. 자바 플랫폼 위에서 동작하는 자바 애플리케이션을 개발하는 개발자들은 자바 API를 사용하게 되는데 자바에서 제공하는 API는 방대하기 때문에 이것을 이용하기 위해서는 API의 목록과 사용법이 체계적으로 정리된 문서를 이용할 수 있어야 합니다. 아래의 링크는 JAVA의 API 문서 페이지 입니..

[JAVA : 메서드]4. 오버로딩

오버로딩 메서드를 사용하는 방법 중 오버로딩(Overloading)이라는 기법이 있습니다. 오버로딩이란 메서드의 이름은 동일하게 정의하고 매개변수 혹은 리턴 값만 변경하여 정의하는 기법을 의미합니다. 이는 메소드의 사용성을 높여주는 방법입니다. import java.io.*; class Main { static int minus(int a, int b) { return a - b; } static double minus(double a, double b) { return a - b; } public static void main(String[] args) throws Exception { int result1 = minus(2, 5); System.out.println(result1); double re..

[JAVA : 메서드]3. 메서드 사용하기

- 메서드 사용하기 메서드를 사용하려면 우선 메서드가 정의 되어 있어야 합니다. 메서드는 main 함수를 포함한 다른 메서드에서 사용 가능합니다. import java.io.*; class Main { static int minus(int a, int b) { return a - b; } public static void main(String[] args) throws Exception { int a = 1; int result = minus(a, 5); System.out.println(result); } } 위 예제는 int 형 변수 a, b를 매개변수로 하며 minus라는 이름을 가진 메서드를 정의하고, minus 메서드를 main 함수 내에서 사용하는 예제입니다. minus 메서드는 int 형 변..

[JAVA : 메서드]2. main 메서드

메서드는 main 메서드와 사용자 정의 메서드 두 개로 나누어지는데, 사용자 정의 메서드는 앞에서 설명했던 프로그래머가 정의하여 사용하는 메서드이며 main 메서드는 특별한 용도로 사용됩니다. main 메소드는 모든 프로그램에서 오직 하나만 존재하는 메서드입니다. 자바 프로그램은 main 메서드로부터 시작되어 main 메서드의 끝과 함께 종료됩니다. import java.io.*; class Test { public static void main(String[] args) { for(int i = 1 ; i

[JAVA : 메서드]1. 메서드

- 메서드의 기본 메서드는 함수와 같은 역할을 하며 프로그래밍 과정에서 코드의 간결성을 높여줍니다. 위 그림과 같이 변수 혹은 상수를 입력하면 메서드 내부에서 연산을 거친 뒤 결괏값을 출력합니다. 즉, 메서드에는 입력과 출력이 존재합니다. 이 개념을 좀 더 자세히 설명하며 메서드와 관련된 용어 및 몇 가지를 짚어보겠습니다. 입력은 매개변수 혹은 파라미터(Parameter)라고 부릅니다. 입력은 전혀 없을 수도, 무한히 많을 수도 있으며 void를 제외한 모든 자료형을 파라미터로 사용할 수 있습니다. 이때 매개변수로 선언된 변수들은 메서드 내에서 지역변수(지정된 범위 안에서만 사용할 수 있는 변수)처럼 사용할 수 있습니다. 출력은 return value(리턴 값)이라고 부르며, 메서드가 종료된 뒤 최종으로..

[JAVA : 배열]2. 배열과 반복문 / 2차원 배열

- 배열과 반복문 배열은 반복문과 함께 사용하는 경우가 많습니다. 많은 양의 데이터를 처리하고자 만든 자료형이기 때문에 각각의 데이터를 제어할 시 반복문을 통해 중복되는 작업을 빠르게 진행할 수 있습니다. 아래 예제를 통해 for 문과 배열을 조합하여 사용하는 법을 알아봅시다. import java.io.*; class Main { public static void main(String[] args) { int iArraySize = 20; int [] Array = new int[iArraySize]; for(int j = 0 ; j < iArraySize ; j++) { Array[j] = j; } for(int j = 0 ; j < iArraySize ; j++) { System.out.printl..

[JAVA : 배열]1. 배열

- 배열의 선언 배열(Array)은 변수 혹은 상수의 모음입니다. 어떠한 자료형에도 사용 가능하며, 메모리 공간에 할당될 때에는 배열에 포함된 요소들이 연속 할당되는 것이 특징입니다. 단, 하나의 배열은 하나의 자료형으로 통일되며, 이는 일반적인 변수와는 사용법이 조금 다릅니다. import java.io.*; class Main { public static void main(String[] args) { int [] Array = new int[10]; } } 5번째 줄에 대괄호와 함께 Array 가 선언되어 있습니다. 바로 배열이 선언된 부분입니다. 먼저 대입 연산자 왼쪽에 위치한 int [] Array를 살펴보겠습니다. Array라는 int 형 변수를 선언했는데 int와 Array 사이에 대괄호("..

728x90
728x90