λͺ©λ‘μ 체 κΈ (162)
EEALL@ONCE
1. ν΄λμ€λ λλ¬Έμλ‘ μμ 2. μμλ λλ¬Έμμ _ μ¬μ© 3. λ³μλ λ©μλλ λν νκΈ°λ² camel case μ¬μ© μΊλ© μΌμ΄μ€μ νΉμ§: κ° λ¨μ΄μ 첫 κΈμλ λλ¬Έμλ‘ μμν©λλ€. λ¨μ΄λ€μ λΆμΌ λλ 첫 λ¨μ΄λ₯Ό μ μΈν λλ¨Έμ§ λ¨μ΄λ€μ 첫 κΈμλ₯Ό λλ¬Έμλ‘ μμ±ν©λλ€. 곡백μ΄λ μΈλμ€μ½μ΄ λ±μ ꡬλΆμλ μ¬μ©νμ§ μμ΅λλ€. int studentAge; // λ³μλͺ , 첫 λ¨μ΄λ μλ¬Έμλ‘ μμ, λλ¨Έμ§ λ¨μ΄μ 첫 κΈμ λλ¬Έμ String fullName; // λ³μλͺ , 첫 λ¨μ΄λ μλ¬Έμλ‘ μμ, λλ¨Έμ§ λ¨μ΄μ 첫 κΈμ λλ¬Έμ void calculateInterestRate(); // ν¨μλͺ , κ° λ¨μ΄μ 첫 κΈμ λλ¬Έμ 4. ν¨ν€μ§λ μλ¬Έμ
Javaμμ Final μ΄λ? π : μλ°μμ `final`μ λ³μ, λ©μλ, ν΄λμ€μ μ μ©λλ ν€μλλ‘ μ¬μ©λ©λλ€. `final`μ μ¬μ©νλ©΄ ν΄λΉ μμκ° λ³κ²½λμ§ μκ³ λΆλ³(immutable)νκ² λ§λ€μ΄μ§λλ€. 1. `final` λ³μ: `final` ν€μλλ₯Ό μ¬μ©νμ¬ λ³μλ₯Ό μ μΈνλ©΄, ν λ² μ΄κΈ°νν μ΄νμλ ν΄λΉ λ³μμ κ°μ΄ λ³κ²½λμ§ μμ΅λλ€. μ¦, λ³μλ μμκ° λ©λλ€. final int age = 30; // age = 31; // μλ¬! final λ³μλ κ°μ λ³κ²½ν μ μμ. 2. `final` λ©μλ: λ©μλμ `final` ν€μλλ₯Ό μ¬μ©νλ©΄, ν΄λΉ λ©μλλ νμ ν΄λμ€μμ μ€λ²λΌμ΄λ(μ¬μ μ)ν μ μμ΅λλ€. public class Parent { public final void print..
μ μ μλ£νμ΄ λλ체 λλ° ? π : μ μ μλ£ν(Static Data Type)μ νλ‘κ·Έλλ° μΈμ΄μμ λ³μλ ννμμ νμ μ΄ μ»΄νμΌ μμ μ κ²°μ λμ΄ λ°νμ λμ λ³νμ§ μλ νμ μ μλ―Έν©λλ€. Java: Javaλ κ°λ ₯ν μ μ νμ μΈμ΄λ‘, λ³μ μ μΈ μ νμ μ λͺ μν΄μΌ ν©λλ€. μ»΄νμΌλ¬λ λ³μμ νμ μ κ²μ¬νκ³ , νμ μ΄ μΌμΉνμ§ μμ κ²½μ° μ€λ₯λ₯Ό λ°μμν΅λλ€. C/C++: Cμ C++μ λͺ¨λ μ μ μλ£νμ κ°μ§λ μΈμ΄μ λλ€. λ³μ μ μΈ μ νμ μ λͺ μνκ³ , μ»΄νμΌ μμ μ νμ κ²μ¬λ₯Ό μνν©λλ€. C#: C# λν Javaμ μ μ¬νκ² μ μ νμ μΈμ΄μ λλ€. λ³μμ νμ μ λͺ μνκ³ , μ»΄νμΌλ¬μ μν΄ νμ κ²μ¬κ° μνλ©λλ€. Kotlin: Kotlinμ Javaμ 100% νΈνλλ μ μ νμ μΈμ΄λ‘, Ja..
리ν°λ΄(Literal)μ νλ‘κ·Έλλ°μμ μ¬μ©λλ λ°μ΄ν°μ κ³ μ λ κ°μ λνλ΄λ νκΈ°λ²μ λλ€. κ°λ¨ν λ§νλ©΄, μμ€ μ½λμ μ§μ μ λ ₯ν κ° κ·Έ μ체λ₯Ό μλ―Έν©λλ€. int number = 42; String name = "John"; boolean isReady = true; 리ν°λ΄(Literal)μ νλ‘κ·Έλλ°μμ μ¬μ©λλ λ°μ΄ν°μ κ³ μ λ κ°μ λνλ΄λ νκΈ°λ²μ λλ€. κ°λ¨ν λ§νλ©΄, μμ€ μ½λμ μ§μ μ λ ₯ν κ° κ·Έ μ체λ₯Ό μλ―Έν©λλ€. μ¬κΈ°μ μ«μ 42, λ¬Έμμ΄ "John", κ·Έλ¦¬κ³ λ Όλ¦¬ κ° trueλ λͺ¨λ 리ν°λ΄μ λλ€.
1. Java κΈ°λ° μ€μ AnnotationConfigApplicationContext 2. Xml κΈ°λ° μ€μ (Resourcesμ λ±λ‘ν΄μΌ λ¨) μμ¦μ xml κΈ°λ° μ€μ μ κ±°μ μ°μ§ μλλ€. GenericXmlApplicationContext μ€νλ§μ΄ μ΄λ κ² λ€μν μ€μ νμμ μ§μν μ μλ μ΄μ λ BeanDefinition(λΉ μ€μ λ©νμ 보)μ μ¬μ©νκΈ° λλ¬Έ! μλ° μ½λ @Bean λ xml μ€μ μ΄λ λͺ¨λ λ€ BeanDefinitionμ λ±λ‘ λλ€. λ°λΌμ, μ€νλ§ μ»¨ν μ΄λλ μ΄λ€ μ€μ νμΌμΈμ§ μκ΄ μμ΄ BeanDefinitionμ κΈ°λ°ν΄μ μ€νλ§ λΉμ μμ±νλ€.
λ κ°λ₯Ό ꡬλΆνκΈ΄ μ’ μ΄λ ΅λ€. μλλ©΄, λ³΄ν΅ BeanFactoryλ₯Ό λ°λ‘ μ°κΈ°λ³΄λ¨, BeanFactoryλ₯Ό μμν ApplicationContextλ₯Ό μ¬μ©νκΈ° λλ¬Έμ΄λ€. λ λ€ μ€νλ§ μ»¨ν μ΄λλΌκ³ λΆλ₯΄κΈ΄ νλ€. 1. BeanFactory (1) μ€νλ§ μ»¨ν μ΄λμ μ΅μμ μΈν°νμ΄μ€ (2) μ€νλ§ λΉμ κ΄λ¦¬νκ³ μ‘°ννλ μν μ λ΄λΉ. (3) getBean()μ μ 곡 2. Application Context (1) BeanFactory κΈ°λ₯μ λͺ¨λ μμλ°μμ μ 곡 (2) λΉ νν λ¦¬κ° μ 곡 νμ§ μλ λΆκ°κΈ°λ₯μ μ 곡 - MessageSource : κ° μΈμ΄λ₯Ό λ€μ΄μ€λ κ°λλ‘ μΆλ ₯ κ΅μ ν(i18n)μ μ§μν(l10n)λ₯Ό μν΄ μ¬μ©λλ©°, μ¬μ©μμ λ‘μΌμΌμ λ°λΌ λ€λ₯Έ μΈμ΄λ‘ λ©μμ§λ₯Ό νμν μ μλλ‘ λμμ€ - En..
μμ κ΄κ³ μ€νλ§ λΉμμ λΆλͺ¨ νμ μΌλ‘ μ‘°ννλ©΄, μμ νμ κΉμ§ λͺ¨λ μ°Ύμμ λ°νν΄ μ€λ€. κ·Έλμ λ§μ½ object (μ΅κ³ λΆλͺ¨ νμ )μΌλ‘ μ‘°ννλ©΄ λͺ¨λ λ±λ‘λ λΉμ λ€ μ°Ύμμ 보μ¬μ€λ€. @Configuration @Configuration static class TestConfig{ @Bean public DiscountPolicy rateDiscountPolicy(){ return new RateDiscountPolicy(); } @Bean public DiscountPolicy fixDiscountPolicy(){ return new FixDiscountPolicy(); } } @Test getBean(λΆλͺ¨μ΄λ¦) μ¬μ©μ, λΆλͺ¨ νμ μΌλ‘ κ²μ νμ λ, μμμ΄ μ¬λ¬ κ°λ©΄ μ€λ³΅ μ€λ₯ λ°μμ΄ μκΈ°μ, μ΄..
π case CASE ννμ: CASE ννμμ νΉμ 쑰건μ λ°λΌ λ€λ₯Έ κ°μ λ°ννκ±°λ μ°μ°μ μννλλ° μ¬μ© λν CASE ννμμ μ¬μ©νμ¬ μλ‘μ΄ μ»¬λΌμ μμ±ν μλ μμ SELECT name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' ELSE 'F' END AS grade FROM students; students ν μ΄λΈμ score 컬λΌμ λ°λΌ κ° νμμ μ±μ λ±κΈμ κ³μ°νμ¬ gradeλΌλ μλ‘μ΄ μ»¬λΌμΌλ‘ νν