Programming
[SpringBoot] MySQL 연동 - 오류 해결 및 민감 정보 숨기기
[ 1 ] build.gradle에 의존성 추가 dependencies { //implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j:8.0.32' } JdbcTemplate를 사용한다면 'spring-boot-starter-jdbc'를, JPA나 Spring Data JPA를 사용한다면 'spring-boot-starter-data-jpa'를 추가한다. ※ 그리고 일반적으로 'mysql:mysql-connector-java'를 추가하는데, 필..

[Java] JVM의 메모리 구조(Runtime Data Area)
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! JVM의 메모리 구조를 살펴보기 전에 자바 프로그램의 실행 단계부터 간략히 알아보자. (1) 자바 컴파일러에 의해 자바 소스 파일(.java)이 바이트 코드(.class)로 변환된다. (2) JVM은 바이트 코드(.class)를 읽어 해당 프로그램을 실행한다. (3) 프로그램이 실행되면, JVM은 시스템으로부터 프로그램 수행에 필요한 메모리를 할당받는다. (4) JVM은 할당받은 메모리를 용도에 따라 여러 영역으로 나누어 관리하는데, 3가지 주요 영역으로 Method Area, Call stack, heap이 있다. [ 1 ] Method Area 프로그램 실행 중 어떤 클래스가 호출되면(사용되면), JVM은 .class..

[Java] 클래스, 객체, 인스턴스의 차이 및 객체 배열
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] 클래스, 객체, 인스턴스 - 클래스 : 객체를 만들어내기 위해 정의해 놓은 것. 즉, 객체의 설계도 - 객체 : 소프트웨어 세계에 구현할 대상이자 클래스에 선언된 모양대로 생성된 실체이다. 객체는 속성과 기능이라는 구성 요소로 이루어지며 일반적으로 속성은 멤버변수, 기능은 메서드라고 한다. - 인스턴스 : 클래스로부터 객체를 만드는 과정을 '클래스의 인스턴스화'라고 하며 어떤 클래스로부터 만들어진 객체를 인스턴스라고 한다. [ 2 ] 객체와 인스턴스 그렇다면 객체와 인스턴스는 같은 것인가? 결론부터 말하자면 객체와 인스턴스는 같은 의미이면서도 차이가 존재한다. 객체는 '모든 인스턴스'를 대표하는 포괄적인 의미를..

[Java] JVM, Java 환경변수 설정(Mac, 기본 zsh 쉘)
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] JVM이란? JVM이란 Java Virtual Machine을 줄인 것으로 'Java를 실행하기 위한 가상 기계'이다. - Java의 정석(남궁성) 컴퓨터의 성능이 향상됨에 따라 많은 하드웨어들이 '소프트웨어화'되어 컴퓨터 속으로 들어오고 있다. 그 예시로 TV를 소프트웨어화한 '윈도우 미디어 플레이어' 등이 있으며 우리는 이처럼 소프트웨어로 구현된 하드웨어를 '가상 기계(Virtual Machine)'라고 한다. JVM은 결국 Java를 실행하는 '가상 컴퓨터'이며, 이는 실제 컴퓨터(하드웨어)가 아닌 소프트웨어로 구현된 컴퓨터를 의미한다. 즉, 컴퓨터(하드웨어) 속의 Java를 실행하는 컴퓨터(소프트웨어)가..
[MySQL] CRUD 명령어
[ 1 ] Create Create는 데이터를 데이터베이스에 넣어주는 작업이다. [ 1-1 ] 삽입할 column을 직접 지정하는 경우 INSERT INTO table_name (column1, column2, column3 ...) VALUES (value1, value2, value3 ...); 지정한 column에는 value가 들어가고, 지정하지 않은 column에는 default 값이 들어간다. [ 1-2 ] 모든 column에 데이터를 넣는 경우 INSERT INTO table_name VALUES (value1, value2, value3 ...); 모든 column에 데이터를 넣는 경우에는 따로 column을 명시할 필요가 없다. ※ 단, 각 column에는 부합하는 타입의 데이터를 넣어야..

[Servlet & Jsp] MVC 패턴, Model 1, Model 2
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] MVC 패턴 MVC(Model - View - Controller)는 UI, 데이터 및 논리제어를 구현하는 데 사용되는 소프트웨어 디자인 패턴이다. [ Model ] 비즈니스 영역의 상태 정보 처리, 데이터 가공 등 데이터 및 비즈니스 로직을 관리한다. [ View ] 사용자에게 실제적으로 보여지는 부분, 즉 UI를 의미한다. [ Controller ] Model과 View 사이를 이어주는 브릿지 역할을 하며 사용자의 입력 및 흐름을 제어한다. 즉, Model을 통해 알맞은 비즈니스 로직을 처리한 후 사용자에게 보여줄 적절한 View를 선택한다. [ MVC 패턴을 사용하는 이유 ] 만약 MVC를 구분하지 않고,..
[MySQL] MySQL 서버 실행 및 종료
[ Mac 에서 MySQL 서버 실행 및 종료 ] (1) 서버 실행 mysql.server start (2) root로 접속 mysql -uroot -p비밀번호 (3) 서버 종료 mysql> \q mysql.server stop
[Servlet & Jsp] Jsp 구조, 코드블록
※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] JSP란? Servlet은 자바 코드 내에 HTML 코드가 있기 때문에 HTML 출력이 많은 결과 페이지를 나타내는 데 적합하지 못하다(모든 HTML 코드를 out.write()로 감싸줘야 하기 때문). 이와 달리 JSP는 HTML 코드 내에 자바 소스코드가 들어가기에 HTML 코드를 작성하는 데 간편하다는 장점이 있다. 그렇다면 간편한 JSP만 사용하면 될텐데, 지금까지 왜 Servlet을 학습했던 것일까? 그 이유는 JSP는 결국 Servlet으로 변환되기 때문이다. 클라이언트가 JSP를 요청하면, JSP 컨테이너는 JSP를 Servlet으로 변환하는 작업을 수행한다. 실제로 간단한 JSP 파일 생성 후 변..