π μ€λ μ½μ λ²μ: Day 6
1.μλ£ μΆμν
μλ£μΆμν:
μ¬μ©μκ° κ΅¬νμ λͺ¨λ₯Έ μ± μλ£μ ν΅μ¬μ μ‘°μν μ μμ΄μΌ μ§μ ν μλ―Έμ ν΄λμ€λ€. μλ£λ₯Ό μΈμΈνκ² κ³΅κ°ν기보λ€λ μΆμμ μΈ κ°λ
μΌλ‘ νννλ νΈμ΄ μ’λ€.
μλ£/κ°μ²΄μ λΉλμΉμ±: μλ£/κ°μ²΄μ μ°¨μ΄λ₯Ό μ€λͺ ν μ₯.
κ°μ²΄ & μλ£ κ΅¬μ‘°:
- κ°μ²΄: μΆμν λ€λ‘ μλ£λ₯Ό μ¨κΈ΄ μ± μλ£λ₯Ό λ€λ£¨λ ν¨μλ§ κ³΅κ°νλ€.
- μλ£ κ΅¬μ‘°: μλ£λ₯Ό κ·Έλλ‘ κ³΅κ°νλ©° λ³λ€λ₯Έ ν¨μλ₯Ό μ 곡νμ§ μλλ€.
μλ£μ κ°μ²΄μ μ₯λ¨μ :
(μλ£ κ΅¬μ‘°λ₯Ό μ¬μ©νλ) μ μ°¨μ μΈ μ½λλ κΈ°μ‘΄ μλ£ κ΅¬μ‘°λ₯Ό λ³κ²½νμ§ μμΌλ©΄μ μ ν¨μλ₯Ό μΆκ°νκΈ° μ½λ€. λ°λ©΄, κ°μ²΄ μ§ν₯ μ½λλ κΈ°μ‘΄ ν¨μλ₯Ό λ³κ²½νμ§ μμΌλ©΄μ μ ν΄λμ€λ₯Ό μΆκ°νκΈ° μ½λ€.
(μ°Έκ³ ) μ μ°¨ μ§ν₯ μ½λ vs. κ°μ²΄ μ§ν₯ μ½λ:
μ μ°¨μ μ½λμ μμλ λν3κ°λ₯Ό λ¨Όμ μ μΈνκ³ λͺ¨μμ λ€λ£¨λ ν ν¨μμμ 3κ°μ λν ν΄λμ€λ₯Ό λ€ λ€λ£¨μκ³ (ex. public class Square{} ), κ°μ²΄ μ§ν₯ μ½λμμλ λ°λ‘ λνμ μ μΈνμ§ μκ³ , 3κ°μ ν¨μμμ κ°κ° λνμ μ μΈ λ° λͺ¨ν λ³νκΉμ§ ν λ²μ λ€λ£¨μλ€. ( ex. public class Square implements Shape {} )
2. λλ―Έν° λ²μΉ:
λͺ¨λμ μμ μ΄ μ‘°μνλ κ°μ²΄μ μμ¬μ μ λͺ°λΌμΌ νλ€λ λ²μΉμ΄λ€.
κΈ°μ°¨μΆ©λ(train wreck): μλμ κ°μ΄ μ¬λ¬ κ°μ°¨κ° νμ€λ‘ μ΄μ΄μ§ κΈ°μ°¨μ²λΌ 보μ΄λ νμμ μ½λ. νΌνκΈΈ κΆκ³ λλ€.
final String outputDir = ctxt.getOptions().getScratchDir().getAbsolutePath();
μλμ κ°μ΄ κ³ μΉλ κ² μ’λ€.
Ooptions opts = ctxt.getOptions();
File scratchDir = opts.getScratchDir();
final String outputDir = scratchDir.getAbsolutePath();
λλ―Έν° λ²μΉκΉμ§ κ³ λ €νλ€λ©΄ μ΄λ κ² getν¨μλ₯Ό νΌνλ©΄ λλ€:
Ooptions opts = ctxt.options();
File scratchDir = opts.scratchDir();
final String outputDir = scratchDir.absolutePath();
3. ν΄κ²°μ±
String outFile = outputDir + "/" + class.Namereplace('.','/')+".class";
FileOutputStream fout = new FileOutputStream(outFile);
BufferedOutputStream bos = new BufferedOutputStream(fout);
ctxt κ° κ°μ²΄λΌλ©΄ λκ°λ₯Ό νλΌκ³ λ§ν΄μΌμ§ μμ λλ¬λ΄λΌκ³ λ§νλ©΄ μ λλ€. μλ₯Ό λ€μ΄, μμ λλ ν°λ¦¬μ μ λ κ²½λ‘κ° μ νμν κΉ? μ λ κ²½λ‘λ₯Ό μ»μ΄ μ΄λμ μΈλ €κ³ ? κ·Έλ λ€λ©΄ ctxt κ°μ²΄μ μμ νμΌμ μμ±νλΌκ³ μν€λ©΄ μ΄λ¨κΉ?
BufferedOutputStream bos = ctxt.createScratchFileStream(classFileName);
κ°μ²΄, μλ£ κ΅¬μ‘°μ μ°¨μ΄λ₯Ό μκ² λμλ€. κ·Έλ¦¬κ³ κ°λ₯νλ©΄ κ°μ²΄ μ§ν₯ μ½λλ₯Ό μ¬μ©νλΌλ λλ―Έν° λ²μΉμ λν΄ λ°°μ°κ² λλ€. μλ° λ΄μ©μ΄ λ§μ΄ λμ€κ³ νμ¬ λ€λ£¨λ JS λ React μλ κ±°λ¦¬κ° μλ κ²μ²λΌ λ³΄μ¬ λ€μ 거리κ°μ΄ λκ»΄μ§λ μ₯μ΄μλ€.
κ°μ²΄ & μλ£ κ΅¬μ‘°: