일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 첫 프로그래밍
- 데이터 모델링
- 클러스터형 인덱스와 보조 인덱스
- 혼자 공부하는 SQL
- 혼자 공부하는 컴퓨터 구조 + 운영체제
- youtube review
- 2025-02-13
- 혼자 공부하는 컴퓨터 구조 및 운영체제
- github에 새 리포지토리 추가하기
- 컴퓨터 구조
- sqld
- 이것이 오라클이다
- 혼자 공부하는 네트워크
- Update
- 친절한 SQL 튜닝
- delete
- 운영체제
- 웹 디자인 기능사
- 인덱스의 개념과 장단점
- gitkraken을 통한 프로젝트 올리기
- oracle
- 컴퓨터 활용 능력
- 뷰
- 데이터모델링
- 컴퓨터 활용 능력 1급
- mysql 설치 방법과 정상 작동 확인하기
- INSERT
- 리눅스 마스터 2급
- 열거형
- 명령 프롬프트
- Today
- Total
목록전체 글 (315)
코딩 브이로그
객체지향 프로그래밍은 정해진 규칙들을 이용해서 코드 간에 서로 관계를 맺어 유기적으로 프로그램을 구성하는 것이다. 객체지향언어의 주요특징은 다음과 같다. 1. 코드의 재사용성이 높다. 새로운 코드를 작성할 대 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 객체지향 프로그래밍은 프로그래머에게 거시적 관점에서 설계할 수 있는 능력을 요구하기 때문에 객체지향개념을 이해했다 하더라도 자바의 객체지향적 장점들은 충분히 활용..
'상수(constant)'는 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다. 상수를 선언하는 방법은 변수와 동일하며, 단지 변수의 타입 앞에 키워드 'final'을 붙여주기만 하면 된다. 그리고 상수는 반드시 선언과 동시에 초기화해야 하며, 그 후 부터는 상수의 값을 변경하는 것이 허용되지 않는다. final int MAX_SPEED; // 에러. 상수는 선언과 동시에 초기화해야함 final int MAX_VALUE = 100; // OK. 선언과 동시에 초기화했음 MAX_VALUE = 200; // 에러. 상수의 값은 변경할 수 없음 변수(variable) - 하나의 값을 저장하기 위한 공간 상수(constant) - 값을 한번만 저..
자료형은 크게 '기본형'과 '참조형' 두 가지로 나눌 수 있는데, 기본형 변수는 실제 값을 저장하는 반면, 참조형 변수는 어떤 값이 저장되어 있는 주소(memory address)를 값으로 갖는다. 기본형(primitive type) - 논리형(boolean), 문자형(char), 정수형(byte,short,int,long), 실수형(float,double) 계산을 위한 실제 값을 저장한다. 모두 8개 참조형(reference type) - 객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입. 클래스 이름 변수 이름; // 변수의 타입이 기본형이 아닌 것들은 모두 참조변수이다. Date today = new Date(); // Date객체를 생성해서, 그 주소를 today에 저장 객체를 생성하는..
'변수의 이름'처럼 프로그래밍에서 사용하는 모든 이름을 '식별자(identified)'라고 하며, 식별자는 같은 영역 내에서 서로 구분(식별)될 수 있어야 한다. 1. 대소문자가 구분되며 길이에 제한이 없다 - True와 true는 서로 다른 것으로 간주된다. 2. 예약어를 사용해서는 안 된다. - true는 예약어라서 사용할 수 없지만, True는 가능하다. 3. 숫자로 시작해서는 안 된다. - top10은 허용하지만, 7up은 허용되지 않는다. 4. 특수문자는 '_'와 '$'만을 허용한다. - $harp은 허용되지만, S#arp은 허용되지 않는다. 그 외에 필수적인 것은 아니지만 자바 프로그래머들에게 권장하는 규칙들은 다음과 같다. 1. 클래스 이름의 첫 글자는 항상 대문자로 한다. - 변수와 메서드..
변수를 선언한 이후부터는 변수를 사용할 수 있으나, 그 전에 반드시 변수를 '초기화(initialization)'해야 한다. 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 '알 수 없는 값(쓰레기값, garbage value)'이 남아있을 수 있다. 변수에 값을 저장할 때는 대입 연산자 '='를 이용한다. 자바에서는 오른쪽의 값을 왼쪽(변수)에 저장하라는 뜻이다. int a; int b; int x = 0; int y = 0; -------------------- int a, b; int x = 0, y = 0; 위 코드는 서로 같은 의미의 다른 코드이다. 변수는 한 줄에 하나씩 선언하는 것이 보통이지만, 타입이 같은 경우 콤마 ','를 구분자로 여러 변수를 한 줄에 선언..
중요한 프로그래밍 능력 중의 하나가 바로 '값(data)을 잘 다루는 것'이다. 값을 저장하는 공간인 변수를 잘 이해하고 활용하는 것은 그 능력을 얻기 위한 첫걸음이다. 프로그래밍언어에서의 변수(variable)란, 값을 저장할 수 있는 메모리상의 공간을 의미한다. 이 공간에 저장된 값은 변경될 수 있다. 변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보된다. int age; // age라는 이름의 변수를 선언
작성하는 프로그램의 크기가 커질수록 프로그램을 이해하고 변경하는 일이 점점 어려워진다. 심지어는 자신이 작성한 프로그램도 '내가 왜 이렇게 작성했지?'라는 의문이 들기도 하는데, 남이 작성한 코드를 이해한다는 것은 정말 쉬운 일이 아니다. 이러한 어려움을 덜기 위해 사용하는 것이 바로 주석이다. 범위주석 '/*'와 '*/'사이의 내용은 주석으로 간주된다. 한 줄 주석 '//'부터 라인 끝까지의 내용은 주석으로 간주된다. 다음은 주석의 몇 가지 사용 예이다. /* Date: 2016. 1. 3 Source : Hello.java Author : 남궁성 Email : castello@naver.com */ 컴파일러는 주석을 무시하고 건너뛰기 때문에 실제 코드만 컴파일한다. 따라서 주석이 많다고 해서 프로그램..
콘솔에서 아래와 같이 Java 애플리케이션을 실행시켰을 때 c:\jdk1.8\work>java Hello 내부적인 진행순서는 다음과 같다. 1. 프로그램의 실행에 필요한 클래스(*.class파일)를 로드한다. 2. 클래스파일을 검사한다.(파일형식, 악성코드 체크) 3. 지정된 클래스(Hello)에서 main(String[] args)를 호출한다. main메서드의 첫 줄부터 코드가 실행되기 시작하여 마지막 코드까지 모두 실행되면 프로그램이 종료되고, 프로그램에서 사용했던 자원들은 모두 반환된다. 만일 지정된 클래스에 main메서드가 없다면 다음과 같은 에러 메시지가 나타날 것이다. Exception in thread "main" java.lang.NoSuchMethodError: main
자바로 프로그래밍을 배워나가면서 많은 수의 크고 작은 에러들을 접하게 될 것이다. 그래서 자주 발생하는 기본적인 에러와 해결방법을 간단히 정리하였다. 에러가 발생하였을 때 참고하고, 그 외의 에러는 에러메시지의 일부를 인터넷에서 검색해서 찾아보면 해결책을 얻는데 도움이 될 것이다. 1. cannot find symbol 또는 cannot resovle symbol 지정된 변수나 메서드를 찾을 수 없다는 뜻으로 선언되지 않은 변수나 메서드를 사용하거나, 변수 또는 메서드의 이름을 잘못 사용한 경우에 발생한다. 자바에서는 대소문자구분을 하기 때문에 철자 뿐 만아니라 대소문자의 일치여부도 꼼꼼하게 확인해야한다. 2. ';' expected 세미콜론 ';'이 필요한 곳에 없다는 뜻이다. 자바의 모든 문장의 끝에..
자바로 프로그램을 개발하려면 JDK이외에도 편집기가 필요하다. 메모장과 같은 간단한 편집기도 있지만, 처음 자바를 배우는 사람들에게는 이클립스(eclipse)나 인텔리제이(IntelliJ)와 같이 다양하고 편리한 기능을 겸비한 고급 개발도구를 사용하는 것이 좋다. class Hello { public static void main(String[] args) { System.out.println("Hello, world."); // 화면에 글자를 출력한다. } } 이 예제를 실행하려면, 먼저 자바컴파일러(javac.exe)를 사용해서 소스파일(Hello.java)로 부터 클래스파일(Hello.class)을 생성해야한다. 그 다음에 자바 인터프리터(javac.exe)로 실행한다. javac.exe java...
자바에서 제공하는 클래스 라이브러리(Java API)를 잘 사용하기 위해서는 Java API 문서가 필수적이다. 이 문서에 나오는 모든 클래스를 다 공부할 필요는 없고, 자주 사용되는 것만을 공부한 다음 나머지는 영어사전처럼 필요할 때 찾아서 사용하면 된다. Java API 문서는 'http://java.sun.com/'에서 다운받을 수 있다. 앞으로 자주 참고하게 될 문서이므로 바로가기를 만들어 놓는 것이 좋다.
자바로 프로그래밍을 하기 위해서는 먼저 JDK(Java Development Kit)를 설치해야 한다. http://java.sun.com 에서 다운로드 받을 수 있다. JDK의 설치가 끝났으면 설치된 디렉토리의 bin 디렉토리(예:c:/jdk1.8/bin)를 path에 추가해주어야 한다. 이 디렉토리에는 자바로 프로그램을 개발하는데 필요한 실행파일들이 들어있다. path는 OS가 파일의 취가(디렉토리)를 파악하는데 사용하는 경로(path)로, path에 디렉토리를 등록하면, 해당 디렉토리에 포함된 파일을 파일 경로없이 파일 이름만으로도 사용할 수 있게 된다. JDK의 bin 디렉토리에 있는 주요 실행파일들은 다음과 같다. - javac.exe 자바 컴파일러, 자바소스코드를 바이트코드로 컴파일한다. c:..
1. 운영체제에 독립적이다. Java는 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용 프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할수 있도록 변환하여 전달한다. 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM이 제공된다. 그래서 Java로 작성된 프로그램은 운영체제와 하드웨어에관계없이 실행 가능하며 한번 작성하면, 어디서나 실행된다.(Write once, run anywhere) 2. 객체지향언어이다. 객체지향 프로그래밍언어(object-oriented-programming language) 중의 하나로 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어라는 평가를 받고 있다. 3. 비교적 배우기 쉽다. 자바의 연산자와 기본구문은 C++에서..

SpringSecurity 클래스에서 filterChain에 다음과 같이 CustomAuthorizationRequestResolver를 적용하였습니다. 저는 구글 로그인 시에만 파라미터로 prompt=conset 를 전달하도록 구현하였습니다. CustomAuthorizationRequestResolver에서 다음과 같이 customAuthorizationRequest 메서드를 구현하였습니다. 감사합니다.

@AssertTrue 어노테이션을 메서드에 붙이셔서 true/false 여부를 boolean 값으로 반환하는 방법으로 유효성을 점검하였다. 1) 비밀번호 값과 비밀번호 확인 값이 일치하는지 확인하기 위한 코드 @AssertTrue(message = "비밀번호가 일치하지 않습니다.") public boolean isPasswordDoubleChecked() { if (password != null && password2 != null) { return password.equals(password2); } return false; } 2) HTML에 타임리프 비밀번호 확인 Incorrect data 3) 비밀번호 값과 비밀번호 확인 값이 불일치일 시, 아래와 같이 에러 메시지가 화면에 표시