일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발일지
- 미국유학
- 파이데이아창의인재학과
- java
- 2+2
- 미국유학생활
- 미국유학생
- 사이드프로젝트
- 미국대학
- JVM아키텍처
- 케네스
- 유학생 준비물
- 자바 스터디
- CSUS
- i-20
- Java 스터디
- 유학생대학생활
- 미국대학생활
- 만다라트프로젝트
- 해외유학
- F1학생비자
- California State University Sacramento
- 자바
- jpa
- 케네스로그
- Kenneth Park
- 부산외대
- 비전공자 git
- 복수학위제도
- 개인 프로젝트 개발일지
- Today
- Total
목록전체 글 (87)
케네스로그
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/HKfa9/btrr12RKdVR/g5ajofcRryMMkanju1kAa1/img.png)
Git, 가깝지만 낯선 그 이름 전공자 이거나 비전공자 할 것 없이 Git(깃)에 대해 분명 들어봤을 것입니다. 작성한 코드를 git으로 관리해야 한다, 포트폴리오를 위해 git을 이용해야 한다, 협업에 있어 git은 필수다, 뭐, git을 아직도 모른다고? 등 국비교육을 받은 비전공자인 경우 처음 굉장히 당황스러울것입니다. 내가 아는 건 옷깃밖에 없는데 git(깃)이 도대체 뭐라고 그러는지. 이 글은 아직 Git에 대해 낯선 사람들을 위해 조금 더 가까워질 수 있길 기대하며 작성하는 소개글 입니다. 그러니까 망할 Git이 뭐냐면 Git은 버전관리시스템(Version Control System)을 말합니다. 리눅스 토발즈가 개발한 프로그램인데, 여러명에서 한 프로젝트를 공동으로 작업하다 불편함을 해소하기..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cqi4G7/btrr1n92TGg/P2bzHijVpuAlIX0GzZaLX0/img.png)
배경 사용자는 알 일이 없겠지만, 개발자는 웹 어플리케이션을 조작하기 위해 JavaScript라는 언어를 사용합니다. 이 JavaScript라는 것이 문제인데, 이것은 웹의 역사로 거슬러 올라갑니다. 초창기에 웹 브라우저는 몇 없었으며, 제각기 독자적으로 개발되고 있었습니다. 개발자는 각 브라우저를 위해서 따로 웹 페이지를 제작해야만 했었습니다.. 지금의 아이폰 어플과 안드로이드 어플이 호환이 안되는 것과 유사합니다. 사람들은 웹 기술에 대한 합의가 필요하다 느껴졌고, 현재는 여러번의 합의를 거쳐 어느정도 스탠다드가 생겨났습니다. 이렇게 규격화된 JavaScript를 ECMAScript라고 하며, 현재에도 꾸준히 전 세계의 사람들이 모여 문법이나 기능들에 대해 협의를 하고 있습니다. 그러나, 문제는 최근..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bv7lS6/btrr4R9wo8g/nywzh2e1MKiwIYVxK4u9nk/img.png)
이전 글에서는 클래스로더와 런타임 데이터 영역에 대해 알아보았다. 이번에는 JVM의 코드를 실행시키는 실행엔진에 대해 알아보자. JVM 실행 엔진(Execution Engine) Execution Engine은 실제로 클래스파일의 바이트코드를 머신코드로 변환하여 실행하는 부분이라고 할 수 있다. 그 외에도 최적화를 위한 Garbage Collector, JIT Compiler, 그리고 Java Native Method Interface로 구성된다. 1. 인터프리터 Interpreter Java클래스파일의 바이트코드를 한줄씩 읽어서 native code(기계어)로 변환하여 실행하도록 한다. 다른 인터프리터 언어에서 사용되는 그 인터프리터가 맞다. 인터프리팅 방식의 문제는 반복 호출되는 메소드를 매번 인터프..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bNxLne/btrr2WRbFeY/fe7IVwVh0Oxme93NRGkiP1/img.png)
이전 글에서는 JVM의 아키텍처와 클래스로더에 대해 알아보았다. 이번글에서는 JVM에서 실제로 변수를 저장/활용할 수 있는 공간인 런타임 데이터 영역에 대해 알아보자. 런타임 데이터 영역(Runtime Data Area) 자동차가 달리기 위해선 도로가 필요로 하며, 기차가 움직이기 위해선 레일이 필요하다. Java프로그램을 실행하기 위해서는 클래스파일을 저장/실행하기 위해 컴퓨터 내부의 메모리 공간이 필요하다. 이것을 담당하는 것이 JVM의 Runtime Data Area이다. 이것은 5개의 영역으로 나누어진다. 1. 메소드영역(Method Area) 모든 클래스 레벨의 데이터가 저장된다. Person이라는 클래스의 멤버로 isLive라는 변수가 정의되어있다. 이 때, Method area에는 이러한 클..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cqM5h3/btrr1i1Rznt/O1abGEX5FQoGfPZWTI6gm0/img.png)
이번 포스팅에서는 Java를 입문하여 각종 개발 툴을 설치할 때 듣게 되는 단어인 JRE, JDK 등에 대해 알아본다. Java Runtime Environment JRE는 자바 프로그램을 실행하기 위해 필요한 소프트웨어의 일종이다. 앞서 설명한 JVM도 자바 프로그램을 실행하기 위해 필요한 가상 머신이라고 이야기했었다. 즉, JRE는 JVM을 포함한 자바 프로그램 실행과 관련한 클래스 라이브러리, 로더 클래스 등을 모두 포함한다. Java Development Kit JDK는 Java 어플리케이션을 만들기 위해 사용되는 소프트웨어 개발툴의 모음을 말한다. 개발자가 프로그램을 제작 했다면, 이를 테스트도 해보아야 할 것이다. JDK에는 프로그램 제작 뿐만 아니라 실행을 위한 툴들도 포함한다. 즉, JDK..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sqk2E/btrr2WKpIi6/knUue1LIStlpuf1xWwTqRK/img.png)
Java Virtual Machine ⚙️ Java의 슬로건처럼, 하나의 코드로 어떤 기기에서든 동작할 수 있게 하는 원천은 JVM에 있다. JVM은 Java Virtual Machine의 약자로, 자바로 작성된 코드를 실행시켜주는 프로그램이다. Java언어로 작성된 소스코드는 .java형식의 파일로 저장된다. 이 .java파일은 자바 컴파일러에 의해 .class형식의 자바 바이트코드 파일로 변환된다. .class 파일의 바이트코드는 JVM에 의해 각 OS가 실행할 수 있는 기계어 형식으로 전달된다. JVM 아키텍처 JVM은 크게 3개의 컴포넌트로 나눌 수 있다. Class Loader Runtime Data Area Execution Engine 1. 클래스로더(Class Loader) JVM의 구성요..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/KdtoD/btrr2WwSCB9/hqbqxlPsi9I1cYkJgvFaQK/img.png)
기존의 문제🥲 이전에 전통적인 언어의 컴파일과 프로그램 실행과정에 대해 알아보았다. 기존의 문제는 사용자의 프로그램 실행 환경에 맞춰서 다양한 버젼의 프로그램 개발이 필요로 했다는 점이다. 또한, Windows에서 컴파일하여 생성한 실행파일은 오직 Windows머신에서만 실행이 가능하다. 컴퓨터의 동작 과정 컴퓨터는 어떻게 동작하나? 전기적 신호부터.. 컴퓨터는 연산을 수행할 수 있는 전기적 장치를 말한다. 여기서, '전기적'이라는 의미는 전기적인 신호를 인식할 수 있다는걸 뜻한다. 전기적 신 93jpark.tistory.com Java의 등장 ☕️ Java는 Virtual Machine(가상머신)이라는 개념의 프로그램을 통해 Java프로그램을 실행한다. 개발자들은 가상머신에 맞춰 개발을 진행하고, 사용..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mtdB9/btrr2zhGcsR/HPCvLZImVhBPBED04LKEF1/img.png)
컴퓨터는 어떻게 동작하나? 전기적 신호부터.. 컴퓨터는 연산을 수행할 수 있는 전기적 장치를 말한다. 여기서, '전기적'이라는 의미는 전기적인 신호를 인식할 수 있다는걸 뜻한다. 전기적 신호를 시각화하면 위와와 같이 표현할 수 있다. 0~5volt의 전류가 흐르고, 컴퓨터는 0volt일때 전기가 흐르지 않는다, 5volt일때 전기가 흐른다고 인식한다. 이렇게 전기가 흐르거나 흐르지 않는 두 가지의 상태(binary)는 0 또는 1로 표현되며, 컴퓨터 세계에서의 가장 작은 단위가 된다. 1개의 전기적 신호는 bit라는 단위를 가지며, 8개의 연속적인 전기적 신호를 묶어 1 byte라고 부른다. 이런 단위를 통해 컴퓨터는 문자, 숫자, 명령을 인식한다. 문자: '#'라는 문자는 10101010으로 표현하기로..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/omM4A/btrr1n3iCPG/kjnriMlTBbM334HRP3bqIk/img.png)
HTML 문서의 구조화와 시멘틱 마크업에 대하여 처음 웹 개발을 공부하면서 웹 문서를 구조화하고 시멘틱 마크업을 적절히 반영하는 것의 중요성을 피부로 와닿지 못했습니다. 학부시절에 시멘틱 마크업이 중요하다고 이야기는 들었지만, 정작 왜 중요한지, 어떻게 그것을 달성할 수 있는지는 배우지 못해 아쉬움이 많았습니다. 이번에 이쪽을 공부하게 되면서 깨달은 점이, 최근의 대부분 웹 문서들이 이미 구조화와 시멘틱 마크업 작업이 잘 되어있기때문에 그 필요성을 느끼지 못하는듯 했습니다. 좀 더 와닿는 이해를 위해 구조화와 시멘틱 마크업이 잘 못된 예를 만들어 보았습니다. 잘못된 웹 문서 구조화! 잘못된 웹 문서 구조화의 예시를 위해 웹사이트 예시를 만들었습니다. 포켓몬 '꼬지모'에 대한 설명과 사진, 다른 메뉴로 이..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/BWTHc/btrr1NgmeZq/XD9o41DLteC1jCdtkke8Ak/img.png)
컨텐츠 카테고리(Content Category) 모든 HTML요소는 한가지 이상의 컨텐츠 카테고리에 속한다. 공통의 특성을 지닌 요소를 그룹화하여 칸테고리를 나눈다. 이러한 카테고라이징은 해당 요소들끼리 특정 관계를 만드는 것은 아니지만, 각 요소들의 공통된 동작이나 유사점을 특징하는데 도움이 된다. 카테고리는 크게 3가지로 나눌 수 있다. 메인 콘텐츠 폼 관련 콘텐츠 특정 콘텐츠를 위한 카테고리(기타) 메인 컨텐츠(Main Content Categories) 메타데이터 컨텐츠 (meatadata content) 다른 문서와의 링크를 설정하거나, 문서에 포함되지 않는 정보를 다룬다. 또한, HTML 문서 자체를 표현하는 방법이나 동작에 대해 수정할 수 있다. 아래의 요소들이 metadata content..