-
[TIL] - 230703 ์๋ฐ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ, jdk, jre, oop, ํด๋์ค, platform independenceTIL 2023. 7. 3. 19:18๋ฐ์ํ
# kb IT's your life 4๊ธฐ
๐Facts
Package ๊ตฌ์กฐ
package๋ ํด๋๋ฅผ ๋ปํ๋ค. ๋๋ ํฐ๋ฆฌ๋ฅผ ์๋ฏธํ๋๋ฐ, workspace์์ ๋ชจ๋ ์์ค ํ์ผ์ src ํจํค์ง ์์ ์กด์ฌํ๊ฒ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ์์ ์์ธํ๊ฒ ์ค๋ช ํ๊ฒ ์ง๋ง ์ ์ฅ์ ํ๋ฉด ์คํํ์ผ์ด bin ํ์ ๋๋ ํฐ๋ฆฌ์ ์๊ธฐ๊ฒ ๋๋ค.
com.edu๋ผ๋ ํด๋๊ตฌ์กฐ๋ ํด๋์ด๋ฆ์ด com.edu๊ฐ ์๋๋ผ comํด๋ ์์ edu ํด๋ ์์ ๋๋ ํฐ๋ฆฌ๋ผ๋ ๋ป์ด๋ค.
Identifier
1. ์ฝ๊ฒ ์ง๊ด์ ์ผ๋ก ์์ฑํ๋ค.
2. hierarchy๊ฐ ์ค์ํ๋ค.
ํ๋์ ๋ฉ์๋๋ ํญ์ ์๋ฌธ์๋ก ์์ํ๋ค.
๋ณ์๋ช ์ง์ ๋ ํ์ด์ฌ์ ๋ณดํต snake_case ๊ท์น์ ์ฌ์ฉํ์ง๋ง ์๋ฐ๋ camelCase ๊ท์น์ ์ฌ์ฉํ๋ค.
์ฆ, ์ธ๋๋ฐ(_)๊ฐ ์๋ ๋ ๋ฒ์งธ ๋จ์ด๋ฅผ ๋๋ฌธ์๋ก ๋ฐ๊พธ๋ ๋ณ์๋ช ๋ช ๊ท์น์ด๋ค.
identifier์์ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ ๋๋ camelCase์ ๋ฐ๋ฅด๊ฑฐ๋ ํด๋์ค ์ฒซ๋ฒ์งธ ๋ฌธ์์ผ ๋์ด๋ค. ๋๋จธ์ง๋ ๋ค ์๋ฌธ์~
Java 2๊ฐ์ง Spec
1. J2SE(standard edition)
๊ธฐ๋ณธ์ ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ ์ฐ๋ ๊ธฐ์ ์ด๋ค.
java, jdbc๊ฐ ์ฌ๊ธฐ์ ํด๋นํ๋ค.
2. J2EE(enterprise edition)
์๋ฒ๊น์ง ์ฌ์ฉํ๋ค. ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฑด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๋๊ธธ ํด๋ผ์ด์ธํธ๊ฐ ์๋ค๋ ์๊ธฐ๋ค.
Servlet, JSP, Framework
OOP ๊ธฐ๋ฒ์ผ๋ก ํ๋ก๊ทธ๋จ ์์ฑํ๊ธฐ
์๋ฐ์ธ์ด๋ฅผ ์ฐ๋ ์ด์ : ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
ํ์ง๋ง ๋ชจ๋ ๋ก์ง์ main ํจ์์ ๋ค ๋๋ ค๋ฐ๋ ๋ฐฉ์์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ์๋๋ค.
oop์ ์ผ๋ก ํด๋์ค ๋จ์๋ก ์ชผ๊ฐ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๊ฒ์ด๋ค. main์๋ ๊ฐ์ ์ ๋ ฅ๋ฐ๊ณ ํจ์๋ฅผ ํธ์ถํด ๊ฒฐ๊ณผ๋ง ์ถ๋ ฅํ๋๋ก!
ํด๋์ค์ ๊ตฌ์ฑ ์์
1. ํ๋(field)
๋ฉค๋ฒ ๋ณ์๋ผ๊ณ ๋ ํ๋ค. ํด๋์ค ๋ด์ ๋ณ์๋ค์ ๋ปํ๋ค.
2. ๋ฉ์๋(method)
ํด๋์ค ๋ด์ ์ ์ธ๋ ํจ์์ด๋ค.
์คํํด๋์ค์ ์๋ฏธ
์คํ ํด๋์ค๋ main ํจ์๋ฅผ ๋ฉ์๋๋ก ๊ฐ์ง๋ ํด๋์ค์ด๋ค.
๋ค์์ ํ๋ฒ ๋ ์ธ๊ธํ๊ฒ ์ง๋ง, ์คํํด๋์ค๋ ์ปดํ์ผ ๋จ๊ณ๋ฅผ ์ง๋ ์คํ ๋จ๊ณ๊น์ง ๊ฐ์ JVM์์ ์คํ๋๋ค.
test ํด๋์ค๋ test ํด๋๋ฅผ ๋ง๋ค๊ณ ~Test ํด๋์ค ํ์ผ์ ๋ง๋๋ ๊ฒ convention์ด๋ค.
test ํด๋์ค๋ main ํจ์๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์คํํด๋์ค๋ก ๋ณผ ์ ์๋ค.
๋ฉ์๋ ์ ์
1. ์ ์ธ๋ถ
2. ๊ตฌํ๋ถ
์ด ๋ ๊ฐ์ง ํํธ๋ก ์ด๋ฃจ์ด์ง๋ค.
์๋ฐ Application ์คํ ๋จ๊ณ
๋จผ์ , ์ปดํจํฐ์ ํ๋์จ์ด ์์ ์ด์์ฒด์ ๊ฐ ์กด์ฌํ๋ค.
๊ทธ ์์ jvm ์ฆ, ์๋ฐ ๊ฐ์ ๋จธ์ ์ด ์กด์ฌํ๋๋ฐ, jvm์ jdk๋ฅผ ์ค์นํ ๋ ์๋์ผ๋ก ๊ตฌ์ฑ๋๋ค.
JVM ์ด ์ ์ฒด ์ H a r d w a r e ์ด ๊ตฌ์กฐ๋ฅผ Java Platform์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ฌ๋ฉด ์ด ๊ตฌ์กฐ๊ฐ ์ ์ค์ํ๋.
์ฐ๋ฆฌ๊ฐ ๋ณดํต ๋ง๋๋. java ํ์ผ์ ์์์์ค์ฝ๋๋ผ๊ณ ํ๋ค. ์ธ๊ฐ์ด ๋ณด๋ ์ฝ๋๋ผ๋ ๋ป์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ .javaํ์ผ์ ์์ฑํ๊ณ ์ ์ฅํ๊ฒ ๋๋ฉด ์ ์ฅ๊ณผ ๋์์ ์ปดํ์ผ์ด ์ด๋ฃจ์ด์ง๋ค.
์ปดํ์ผ์ด ์ด๋ฃจ์ด์ง๋ฉด binํด๋ ํ์์ ๋๊ฐ์ ์ด๋ฆ์ .class ํ์ผ์ด ์์ฑ๋๊ฒ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด .class ํ์ผ์ 0๊ณผ 1์ binary code๋ก ์ด๋ฃจ์ด์ง์ง ์๊ณ ์ด์ค๊ฐํ ๊ธฐ๊ณ์ด์ธ byte code๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋ฐ๋ผ์ ๋ฐ๋ก ์ปดํจํฐ๊ฐ ์คํํ์ง ๋ชปํ๊ณ ๋ณ๋์ ์คํ๊ณผ์ ์ด ํ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์คํ๊ณผ์ ์ JVM์ด ๋ด๋นํ๋ค.
์ ๋ฆฌํ์๋ฉด, ์๋ฐ ์คํ๋จ๊ณ๋ ๋ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
1. ์ปดํ์ผ ๋จ๊ณ
์ปดํ์ผ์ด ๋๋๋ฉด ์คํํ์ผ์ด ๋ง๋ค์ด์ง๋๋ฐ byte code๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
2. ์คํ ๋จ๊ณ
์คํํ์ผ์ JVM์์ ๋๋ฆฐ๋ค.
์ ์ปดํ์ผ ๋จ๊ณ์์ ํ ๋ฒ์ binary code๋ก ๋ฐ๊พธ์ง ์๊ณ ์ด์ค๊ฐํ ๊ธฐ๊ณ์ด์ธ byte code๋ก ๋ณํํด์ ํ๋ฒ ๋ ๊ณผ์ ์ ๊ฒช๋ ๊ฒ์ผ๊น? ๊ธฐ์ ์ด ๋ถ์กฑํ ๊ฒ์ผ๊น?
๊ทธ๋ ์ง ์๋ค. ์ผ๋ถ๋ฌ ๋ ๋จ๊ณ๋ก ๋ถ๋ฆฌํ ์ด์ ๋ Platform Independence ๋๋ฌธ์ด๋ค.
Platform Independence
์ฐ๋ฆฌ๊ฐ JDK๋ฅผ ์ค์นํ ๋ ์ด์์ฒด์ ๋ณ๋ก ๋ค๋ฅธ JDKํ์ผ์ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ๊ธฐ์ตํ ๊ฒ์ด๋ค. ์ฆ, JDK์ os๋ ์ข ์์ ์ธ ๊ด๊ณ์ด๋ค. JDK๋ก JVM์ ์ค์นํ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ JVM๊ณผ os๊ฐ ์ข ์์ ๊ด๊ณ์ธ ๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ byte code๋ก ์ด๋ฃจ์ด์ง java ์คํํ์ผ๊ณผ JVM์ ๋ ๋ฆฝ์ ์ธ ๊ด๊ณ์ด๋ค.
jvm๊ณผ os์์ ํ๋ฒ ์ข ์๊ด๊ณ๋ฅผ ๊ฑธ์ด๋์ ์คํํ์ผ๊ณผ jvm ์ฌ์ด์์๋ ๋ ๋ฆฝ๊ด๊ณ๋ฅผ ์ ์งํ ์ ์๋ ๊ฒ์ด๋ค.
์ด๊ฑธ Platform Indepence๋ผ๊ณ ํ๋ค.
์คํํ์ผ์ ์ ๋ฌํ๋ฉด ์ด๋ ์ปดํจํฐ๋ , ์ด์์ฒด์ ๋ ํธํ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
JRE๋? Java Runtime Environment
JRE๋ JVM์ ํฌํจํ๋ค.
JRE๋ JDK๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ Java ์ฝ๋๋ฅผ JVM์์ ์ด๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌถ์ด์ JVM์์ ์คํ์ํจ๋ค.
๊ทธ๋ฌ๋ฉด ์ฌ๊ธฐ์ ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฌด์์ ๋งํ๋ ๊ฑธ๊น.
์ฐ๋ฆฌ๊ฐ ๋ฌธ์์ด ์๋ฃํ์ ๋ปํ๋ String์ด๋ ์ถ๋ ฅํ ๋ ์ฐ๋ System.out.println ํ ๋ Stirng๊ณผ System์ ์ ๋๋ฌธ์๋ก ์ธ๊น?
๋ ๋ค ํด๋์ค์ด๊ธฐ ๋๋ฌธ์ด๋ค.
ํด๋์ค์๋ ๋ ๊ฐ์ง ํ์ ์ด ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
1. ๋ด๊ฐ ์์ฑํ ํด๋์ค - user-defined class
2. ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ํด๋์ค
๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ง๋ค๊ณ ์คํํ์ผ์ ํํ๋ก ์ ๊ณต๋๋ ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ/api๋ผ๊ณ ํ๋ค. JDK์ ์คํํ๋๋ฐ ํ์์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด JRE์์ ํฌํจ๋์ด ์๋ ๊ฒ์ด๋ค.
ํฌํจ๊ด๊ณ๋ฅผ ์ ๋ฆฌํ์๋ฉด h/w ์์ os๊ฐ ์๊ณ ๊ทธ ์์ jvm์ด ์กด์ฌํ๋ค. ์ฌ์ค์, JDK๊ฐ JRE๋ฅผ ํฌํจํ๊ณ JRE๊ฐ JVM์ ํฌํจํ๋ ๊ฒ์ด๋ค.
์ด๊ธฐํ: ์ฒ์ ๊ฐ ํ ๋นํ๋ ๊ฒ์ ๋งํ๋ ๊ฒ ์๋๋ผ ์๋ก์ด ๊ฐ์ ๋ณ์์ ํ ๋นํ๋ ๊ฒ์ ๋งํจ.
๐ Findings
JRE์ ๋ํ ์ถ๊ฐ์ ๊ณต๋ถ
https://www.itworld.co.kr/news/110768
"JRE๋ ๋ฌด์์ธ๊ฐ", ์๋ฐ ๋ฐํ์ ํ๊ฒฝ์ ์ดํด
์๋ฐ ๊ฐ๋ฐ ํคํธ(Java Development Kit, JDK), ์๋ฐ ๊ฐ์ ๋จธ์ (Java Virtual Machine, JVM), ์๋ฐ ๋ฐํ์
www.itworld.co.kr
๋ณ์ naming convention์ ์ธ๋๋ฐ์ ๋๋ฌธ์, ๋ ๊ฐ์ง ๊ท์น์ด ์๋ค๋ ๊ฒ์ ์์์ง๋ง ์ด๋ฆ์ ๋ชฐ๋๋ค.
๋ธ๋ก๊ทธ๋ฅผ ๋ณด๋ฉฐ ์ถ๊ฐ๋ก ๊ณต๋ถํ๋ค.
https://security-nanglam.tistory.com/411
[Python] ๋ณ์๋ช Naming Convention
ํ์ด์ฌ์์๋ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ์ด๋ป๊ฒ ํํ์ ํ ๊น? ์ฐ์ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ๋๋ฌธ์๋ก ๊ตฌ๋ณํ๊ณ ์๋ฌธ์๋ก ์์ํ๋ ์นด๋ฉ ์ผ์ด์ค(Camel case) _ Lower Camel Case camelCase: int = 1 ๋
security-nanglam.tistory.com
๐ Feelings
ํ๋ฃจ ๋ง์ ์๋ฐ์ ๋ํด์ ๋ง์ด ์ ๊ฒ ๊ฐ์ ๊ต์ฅํ ์ข์๋ค.
๋ฌธ๋ฒ์ ์ธ ์์ฃผ๋ก ํ ์ค ์์๋๋ฐ java ํ๋ก๊ทธ๋จ ์คํํ๊ฒฝ์ ๋ํด ์๊ฒ ๋์ด ๊ต์ฅํ ์์ผ๋ก๋ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค.
ํ์คํ ๊ต์ก์ด ์ข๋ค :)
๐งญ Future
๋ด์ผ ์ง๋
- Data Type
- Has a Relation
- Constructor์ Memory Allocation
- Condition
์ด๊ฒ์ด ์๋ฐ๋ค ์ฝ์ผ๋ฉด์ ์ค๋ ๋ฐฐ์ด ๋ถ๋ถ ๋ณต์ตํ๊ธฐ
+ ๋ณ์ ์ ์ธ, ๋ณ์ ํ์ ํํธ ์๋ฒฝํ๊ฒ ์ดํดํด ์ค๊ธฐ (ch.2.5,2.6๊น์ง)
๋ฐ์ํ'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] - 230918 mvc + service ๊ตฌ์กฐ (0) 2023.09.20 [TIL] - 230829 css ๊ธฐ์ด (0) 2023.09.18 [TIL] - 230828 html ๊ธฐ์ด (0) 2023.09.02 [TIL] - 230705 ์๋ฐ ์ ์ด๋ฌธ, ์บก์ํ, ๋ฐ๋ณต๋ฌธ, ๋ฐฐ (0) 2023.07.05 [TIL] - 230704 data type, ๋ฉ๋ชจ๋ฆฌ ํ ๋น, has a relation, ๋ฌต์์ ์ด๊ธฐํ (0) 2023.07.04