목록분류 전체보기 (451)
코딩항해기
포인터 상수 (배열의 주솟값)배열 요소의 주솟값을 확인하면 첫 번째 요소부터 순서대로 나열되어있음을 확인할 수 있다. 그리고 배열의 주솟값은 배열 첫번째 요소의 주솟값과 동일한 것을 확인 할 수 있다. 즉, 배열 시작의 주솟값을 나타내는 포인터 변수이다. 그러나 배열의 이름은 다른 포인터 변수와 달리 값의 저장이 불가능한 상수형태의 포인터이다. 이를 포인터 상수라고도 한다. 배열의 포인터 연산배열의 이름은 포인터이므로 배열의 이름을 피연산자로 해 *연산자를 사용할 수 있다. 배열의 이름은 첫 번째 요소(인덱스 0번)과 동일하므로 *연산자를 사용하게 되면 첫 번째 요소의 값이 반환된다. 위와 같은 방식으로 첫 번째 요소에는 접근할 수 있지만 배열의 다른 요소에 접근하려면 포인터 변수의 값을 증가시켜 포인터..
1. 빈칸채우기import java.util.Scanner;public class Solution { public static void main(String[] args) { String message = "Let's go!"; System.out.println("3\n2\n1"); System.out.println(message); }} 2. 디버깅문제public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int angle1 = sc.nextInt(); int angle2 = sc.ne..
포인터C언어에서 포인터랑 메모리의 주솟값을 의미하며 주솟값을 저장하는 변수를 포인터 변수라고 한다.변수를 선언 및 초기화하면 메모리에 공간이 할당되는데, 포인터 변수를 사용하면 이 메모리 주소에 직접적으로 접근할 수 있게 된다. (주의할 점은 메모리의 주소는 실행할 때마다 임의로 변경된다.) 포인터 변수 선언과 초기화일반 변수와 포인터 변수의 차이는 변수 이름 앞에 *(애스터리스크)를 붙인다는 것에 있다. 선언하고 나면 주솟값을 저장할 수 있게 되는데 이 과정에서 &(앰퍼샌드)연산자를 사용해 변수의 주솟값을 반환할 수 있다.int num = 30; //포인터 변수에 저장할 주솟값을 줄 변수int * ptr; //포인터 변수 선언//초기화ptr = # //&지시자를 통해 반환된 주솟값을 포인터 변수..
지난번에 의존성 주입 어노테이션 중 Component에 대해 정리했다.컨테이너가 관리하는 객체라는 것을 알려주는 가장 기본적인 어노테이션이기 때문에, 전부 Component를 사용할 수도 있다. 그러나 용도에 따라 별도의 어노테이션으로 구분짓는 것이 명시적으로 나타내기 좋기 때문에 구분해서 사용한다.즉, 세 어노테이션 모두 Component의 역할(컴포넌트 스캔 가능/컨테이너 Bean 등록)을 수행한다. @Repository Persistence/Data Access LayerRepository는 DB에 접근하는 코드라는 의미로 일반적으로 DAO에 많이 사용된다. 실무에서는 DAO라는 표현을 잘 적어두지 않기 때문에 Repository 어노테이션으로 이 객체가 DAO라는 것을 알 수 있다. @Servi..
[Spring] xml Bean을 통한 의존성 주입 (CI, SI)의존성 주입 DI (Dependency Injection)Spring 컨테이너에서 객체 Bean을 먼저 생성해두고 생성한 객체를 지정한 객체에 주입하는 방식을 의존성 주입이라고 한다.기존에는 new를 사용해 개발자가 직접 관minibcake.tistory.com xml 방식의 단점전통적인 Spring에서는 xml방식을 주로 사용했으나, 객체가 무수히 많아지면 전부 xml에 작성해야하므로 양이 방대해지고, 오탈자가 있을 경우 ctrl F를 통해 원하는 객체를 찾는 것도 어려워진다. 이러한 과도한 설정 문제를 개선하기 위해 어노테이션을 활용한 설정을 개발했다.(복잡성, 유효성 검사의 어려움, 타입 안정성 부재, 추가 작업 필요 등의 단점을 ..
@Autowired를 통해 의존성 주입 시 발생하는 모호성 문제로 인해 예외가 발생했다.Autowired는 의존주입을 할 대상의 타입을 보고 자동으로 찾게 되는데 이 타입을 가진 객체가 여러 개 있어 어떤 의존주입을 해야할지 알 수 없어진 것이다. (주입대상 모호성) 이 때 해결하는 방법은 두 가지로, 1. 타입을 하나만 남기기Component 어노테이션이나 xml에서 한 가지만 컨테이너에 등록을 해서 헷갈릴 여지 자체를 주지 않는 방법이다.Component 어노테이션으로 온오프를 하게 되면 매번 패키지가 import됐다 제거됐다를 반복하게 되고 이는 컴파일이 다시 실행되므로 xml에 등록하고 사용하는 경우가 많다. (컴파일도 비용이기 때문이다) 2. @Qualifier 어노테이션으로 이름 지정하기해당 ..
기존 xml bean 태그로 작업하다 어노테이션으로 변경했더니 bean을 찾지 못하는 에러가 발생했다.xml에서 어노테이션을 인지할 수 있도록 총 2가지의 작업을 해야하는데, 범위지정이 빠져 발생한 오류였다. 기존 루트 앨리먼트 어노테이션을 인지할 수 있도록 변경한 루트 앨리먼트 어노테이션을 찾을 범위를 지정해주는 태그*test패키지 안에 있는 파일에서 어노테이션을 찾겠다는 설정이다. (해당 태그가 빠져 오류 발생)
CSV (Comma Separated Values)표 형태의 데이터를 저장하는 파일 형식이다. 각 줄은 하나의 행에 해당하고 각 열 사이에는 쉼표(Comma)를 넣어 구분하며 이 때 모든 행은 같은 개수의 열을 가져야한다. 줄 바꿈 문자는 라인피드 또는 캐리지 리턴를 사용한다. 예시는 이미지와 같은 표를 CSV로 변환한 형태이다.이름,생년,월,일,국어 점수,영어 점수,수학 점수홍길동,1992년,7월,17일,100점,90점,70점희동이,1992년,4월,3일,90점,100점,100점 이 CSV를 통해 데이터 이관 작업을 진행하자. 1. 데이터를 이관할 테이블을 선택한 뒤 데이터 내보내기를 한다. 2. CSV 형식을 선택한다. * 진행 중 이 부분을 수정해 저장할 폴더를 선택할 수 있다. (기본 C:\Us..
DBeaver에서 MySQL database를 연결하려고 하니 Public Key Retrieval is not allowed 오류가 발생했다.검색 결과 8.x버전 이후부터 발생하는 문제로 보완이 강화되어 발생하는 문제라고 한다. 해당 문제를 해결하기 위해서는 설정 하나를 true로 설정하면 된다.먼저 문제가 되는 계정에서 Edit connection에 들어간다. connection 설정 창에서는 Driver properties에 들어가 allowPublicKeyRetrieval을 true로 설정하면 된다. 이후 Test Connection 또는 연결을 다시 해주면 정상적으로 연동되는 것을 확인할 수 있다.참고로 MySQL은 계정 아래에 여러 database가 있는 형태이므로 root 계정을 연동시켜두면..
※정리된 내용보다 더 많은 차이가 있다. 0. 대소문자 구분Oracle에서는 대소문자를 구분하지 않지만 MySQL에서는 대소문자를 구분한다. 1. 시퀀스 사용 함수Oracleboard_sq.NEXTVALMySQLboard_sq.CURRVAL 그 외에도 MySQL에서는 시퀀스를 사용하지 않고 컬럼 제약조건으로 AUTO_INCREMENT를 사용하고 insert할 때 해당 컬럼을 제외하고하면 시퀀스와 같은 효과를 낸다. (Oracle은 없음) 2. 형변환 Oracle에서는 TO_CHAR, TO_NUMBER 등을 사용한 반면 MySQL에서는 CAST라는 예약어를 활용하여 형변환한다.OracleSELECT TO_CHAR(100) FROM DUALMySQLSELECT CAST(100 AS CHAR) FROM DUA..