본문 바로가기

전체 글15

[Java] Java Code의 실행 과정 (JVM에 전달되기 까지) (참조: https://steady-snail.tistory.com/67) 자바 코드(자바 소스)를 실행하면 일련의 과정을 거쳐 JVM에 전달이 되고 실행이 되게 된다. JVM에 전달되어 실행이 되기까지 자바 코드의 실행 과정은 다음과 같다. 1) '자바 소스(.java 파일)'를 실행한다. 2) '자바 컴파일러(javac.exe)'가 자바 소스를 컴파일하여 '자바 바이트코드 파일(.class 파일)'을 생성한다. 3) 자바 바이트코드 파일을 'JVM의 클래스 로더(Class Loader)'로 전달한다. 4) 클래스 로더(Class Loader)는 '동적 로딩(Dynamic Loading)'으로 필요한 클래스(바이트코드)를 로딩 및 링크하여 '런타임 데이터 영역(Runtime Data Area : JVM.. 2022. 3. 5.
[MySQL] 문자열 타입의 종류와 CHAR, VARCHAR, NVARCHAR 비교 MySQL의 문자열(String) 타입 종류 MYSQL에서 문자열 데이터 타입은 '고정 문자열' 타입과 '가변 문자열' 타입이 있다 #고정 문자열 타입 칼럼의 데이터 크기를 선언해주면(ex: CHAR(10)) 만약 그 크기만큼 데이터가 다 차지 않더라도 해당 크기를 고정적으로 유지함 (남는 부분을 null로 채우고 원래 선언된 크기를 유지함) -> 즉 해당 공간만큼 다 채우지 않는다면 메모리 낭비가 되며, 데이터를 가져올 때 공백을 제거해주기 위해 trim() 메서드를 사용하는 작업이 추가됨. ##고정 문자열인 Data Type - CHAR (최대 10byte의 크기를 가질 수 있음) #가변 문자열 타입 칼럼의 데이터 크기를 선언해주고 데이터가 채워졌는데 만약 그 크기만큼 데이터가 다 차지 않으면 할당한.. 2022. 2. 23.
[MySQL] 특정 칼럼이 어느 테이블에 존재하고 있는지 알아내는 방법 'dept_no' 이란 칼럼이 있다고 하자. 이 칼럼은 현 DB 안에 어느 테이블에 분명 있지만 어느 스키마의 어느 테이블에 있는지는 모른다. 하지만 이 칼럼이 무슨 칼럼인지 알아내야 하거나 이 칼럼을 갖고 어떤 작업을 해야 할 때 이게 대체 어디에 있는 칼럼인지 알아내야 한다. 이럴 경우 사용할 수 있는 방법으로 INFORMATION_SCHEMA.COLUMNS 테이블을 활용하는 방법이 있다. ex) 'dept_no' 란 칼럼을 전체 스키마, 테이블에서 찾고자 한다 SELECT c.TABLE_SCHEMA, c.TABLE_NAME, c.COLUMN_NAME FROM information_schema.COLUMNS c WHERE c.COLUMN_NAME LIKE ('%dept_no%') ; informati.. 2022. 2. 23.
리팩터링 방법 『자바 웹 프로그래밍 next step』(박재성 저) 을 공부하면서 알게 된 리팩터링에 대해 정리 ​ 리팩터링(Refactoring) 리팩터링이란 소스의 가독성을 높이고 유지보수를 편하게 하기 위해 소스의 구조를 변경하는 것 - 리팩터링을 하더라도 기능상의 결과가 변경되는 것은 아님 - 기능 자체는 리팩터링 이전과 똑같이 기능해야 함 ​ 리팩터링 할 때의 3가지 기본적인 원칙 1) 한 가지 메서드는 한 가지 일(책임)만 2) 코드 전체의 인덴트(indent: 깊이)는 1단계를 유지 : 인덴트의 깊이(depth)가 2단계 이상으로 가지 않도록 가급적 유지 3) else 문은 (가급적) 사용하지 않기 : else 문을 사용하면 인덴트가 깊어지기 쉽다. 어쩔수 없을 경우도 있기에 그럴 땐 사용할 수도 있지만 .. 2022. 2. 23.