본문 바로가기

> 개발54

자바의 작동방식과JDK, JRE, JVM의 관계 자바의 작동방식 소스 파일은 javac.exe라는 컴파일 프로그램에 의해 바이트 코드인 .class로 컴파일된다. 이후 .class를 실행시키면 JVM에서 java.exe 프로그램으로 컴파일된 바이트 코드를 메모리에 로딩하고, 윈도우라면 java.exe파일로 .class 파일을 실행하고 그 외에 맥이나 유닉스에서는 java 명령어로 .class 파일을 실행한다. 이미지에 적어놨듯이 javac.exe는 JDK에서 제공하는 컴파일러고 java.exe는 JVM에서 제공하는 프로그램이다. 그러니까 코드를 실행했을 때 JVM이 구동된다고 이해하면 된다. 그렇다면 JDK는 뭐고 JVM은 무엇이며 이 둘의 관계는 어떻게 될까? JDK, JRE, JVM 보이는 것처럼 JDK, JRE, JVM의 관계는 " JDK > J.. 2023. 7. 13.
자바.java와 .class, 터미널에서 자바 컴파일과 실행하기 처음에 정보처리기사 시험 공부를 위해 자바 기초 공부를 시작했다. 그러다가 객체 지향 프로그래밍의 특성을 이해하려면 자바스크립트보다는 자바를 깊게 공부해야겠다고 생각했다. 오버라이딩이 뭔지 이해가 안갔다가 자바 코드를 보고서 뭔지 이해를 했기 때문이었다. 게다가 요새 채용 공고를 보면 SI, 솔루션 쪽에서는 자바스크립트 + 자바 + 익스프레스 + 데이터베이스를 요구하는 경우가 많았다. 그래서 자바를 열심히 공부하기로 했다. 옛날에 자바스크립트조차 몰랐을 때는 '자바'와 '자바스크립트'가 같은 것 또는 비슷한 것이지 않을까 생각했었다. 왜냐하면 이름이 비슷하니깐 연관이 있을 거라 제대로 착각했다. 자바스크립트로 프로그래밍 공부를 시작해서, 자바를 공부하고 있는 지금에서야 '자바'와 '자바스크립트'가 얼마.. 2023. 7. 10.
[DB] SQL ROLLUP과 CUBE 정보처리기사 실기를 공부하다가 데이터베이스에서 헷갈리는 개념이 있어서 간단하게 정리해보려고 블로그 글을 작성한다. 그룹함수 GROUP BY 절에 지정된 그룹별로 속성의 값을 집계할 때 사용하는 함수이다. 그룹함수는 집계 함수와 소계 함수로 또 구분할 수 있다. 집계 함수는 COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIANCE 등이 있고, 소계 함수에는 오늘 알아볼 ROLLUP과 CUBE 가 있다. ROLLUP ROLLUP은 그룹별 소계를 구하는 함수이다. 인수로 주어진 속성의 순서에 따라 결과가 다르게 나올 수 있다. 하위 레벨에서 상위 레벨 순으로 데이터가 집계된다. 사용방법 ROLLUP(속성명1, 속성명2, ...) 인수에 따른 차이 ROLLUP(A) : A로 그룹핑, 총 합.. 2023. 6. 28.
[Javascript] Netlify 바닐라 JS 프로젝트 배포 & API key 적용하기 6월 첫째주부터 셋째주까지 매주 시험을 보느라 바빴다. 첫째주에는 정처기 필기 시험을 봤고 둘째주와 셋째주에는 방송대 기말시험을 3과목씩 봤다.... 이제 숨통이 트여서 포스팅하러 왔다. Netlify로 프로젝트를 배포하는 방법은 굉장히 쉽다. 한 번 해보고 이렇게 금방 사이트를 배포할 수 있다는 사실에 깜짝 놀랄 정도였다! 사이트 배포하기 깃허브 레파지토리가 있는 상태라면 Add new site - Import an existing project를 클릭한다. 레파지토리의 공개 여부와 상관 없이 사이트를 배포할 수 있다. 연결할 레파지토리를 선택하고 나면 이렇게 배포가 진행된다. 에러 발생 사이트에 접속하면 404 에러가 생긴 걸 알 수 있다. 날씨 API 연결에 실패해서 날씨에 따른 배경화면이 나타나지.. 2023. 6. 23.
[Javascript] API KEY 관리하기 - config/apikey.js weather API에서 날씨 정보를 가져올 때 API key가 필요하다. 이때 API key가 노출되면 권한이 없는 사용자가 무단으로 접근하거나, 민감한 데이터가 유출될 수 있다. 또한 사용량에 따라 요금을 납부하는 경우 과다한 사용량 증가로 많은 요금을 납부하는 경우가 생길 수 있다. 그렇기 때문에 API key가 노출되지 않도록 관리를 해야 한다. 이번 미니 프로젝트를 만들 때 레파지토리를 비공개로 해놓았었기에 API key 는 나중에 관리하면 되지~ 라고 생각했는데, git push로 api key가 공개됐으면 그 키는 재발급해야 한다고 한다. 그래서 api key를 재발급받고 다음과 같이 api key가 노출되지 않도록 관리를 했다. config 폴더 안에 apikey.js 추가하기 config.. 2023. 6. 15.
[Node.js]Node.js의 fs모듈로 디렉토리와 파일 추가 함수 만들기 내 단짝 친구와 TIL 을 공유하는 스터디를 하고 있다. 친구는 자동화와 효율에 관심이 많아서 셸 스크립트로 TIL 파일을 자동으로 추가하도록 구현했다고 했다. 내가 아는 것은 js와 리액트뿐이었기 때문에 나는 어떻게 파일을 추가할 수 있을까 고민하다가 node.js의 fs모듈을 활용하기로 했다. 구현 목표 1. 새로운 주가 시작되었을 때 2023-06-둘째주와 같은 이름의 디렉토리 만들기 2. 디렉토리 안에 오늘 날짜의 md 파일 생성하기 fs 모듈 fs 모듈은 이름 그대로 file system과 관련된 모듈이다. 파일은 물론 디렉토리 추가/삭제/읽기와 같은 작업을 수행할 때 사용한다. 파일의 최상단에 const fs = require( "fs" ); 를 입력한 뒤 관련 매서드를 사용하면 된다. 내가 .. 2023. 6. 5.