Spring & Java/Programming9 9. Object 클래스와 JVM 이해과정 Java의 Object 클래스는 Java에서 모든 클래스의 조상 클래스입니다. 즉, Java에서 작성된 모든 클래스는 기본적으로 Object 클래스를 상속받으며, Object 클래스에서 제공하는 메서드를 사용할 수 있습니다. 여기서는 Object 클래스에서 중요한 5가지 메서드인 toString(), equals(), hashCode(), finalize(), clone()에 대해 구체적으로 설명하겠습니다. 1. toString() 메서드역할:toString() 메서드는 객체를 사람이 이해할 수 있는 문자열로 변환해줍니다. 이 메서드는 객체가 어떤 값을 가지고 있는지 쉽게 확인할 수 있도록 돕습니다. 왜 사용해야 하는가?기본적으로 객체를 출력하거나 디버깅할 때, 객체의 상태를 쉽게 확인할 수 있는 방법이.. 2024. 9. 21. 8. Spring 3대 요소 Spring객체지향적으로 설계한 POJO를 유지하며 애플리케이션을 쉽고 효과적으로 개발할 수 있도록 지원하는 프레임워크라고 생각한다. 실패한 해결책 : EJB자바 엔터프라이즈 시스템 개발이 어려웠던 가장 큰 이유는 근본적인 비즈니스 로직과 엔터프라이즈 기술이라는 두 가지 복잡합이 한데 얽혀 있기 때문이다. EJB의 기본 전략도 이 두가지 종류의 복잡함을 분리하는 것이었다. EJB는 기술적인 복잡함을 애플리케이션의 핵심 로직에서 일부분 분리하는 데 성공하긴 했다. 그러나 EJB라는 환경과 스펙에 종속되는 코드로 만들어져야 하는 더 큰 부담을 안게 되었다. EJB라는 틀 안에서 자바 코드를 만들게 강제함으로써 자바 언어가 원래 갖고 있던 장점마저 잃어버렸다는 사실이다. 비즈니스와 애플리케이션 로직의 복잡함을.. 2023. 11. 23. 7. JVM JVM JDK : 자바 개발 키트의 줄임말로 JRE에 컴파일러, 디버거 등 개발 도구를 포함하는 프로그램 JRE : 자바 실행 환경의 줄임말로 JVM에 자바 라이브러리와 기타 파일들이 결합된 자바를 실행하기 위한 프로그램. JVM : 자바 가상 머신으로 애플리케이션을 클래스 로더를 통해 읽어 들여 API와 함께 실행 JVM 구성(class Loader)1. java 파일을 Java 컴파일러가 컴파일하면 .class 파일인 바이트 코드가 생성2. 클래스 파일들을 엮어서 JVM이 운영체제로부터 할당받은 메모리 영역인 Runtime Data Area에 적재하는 역할을 한다. (execution engine) 1. 클래스 로더에 의해 메모리에 적재된 클래스(바이트 코드)들을 기계어로 변경해 명령어 단위로 .. 2023. 11. 23. 6. 핵심원리 기본편 스프링과 객체 지향1. 다형성이 가장 중요하다2. 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.3. 스프링에서 이야기하는 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다.4. 스프링을 사용하면 마치 레고 블럭 조립 하듯, 공연 무대의 배우를 선택하듯 구현을 편리하게 변경할 수 있다. SRP (단일 책임 원칙) : 하나의 클래스는 하나의 책임만 가져야 한다. 중요한 기준은 변경이다, 변경이 있을 때 파급 효과가 적으면 SRP를 잘 따른것. OCP (개방 폐쇄 원칙) => 확장에는 열려있으나 변경에는 닫혀 있어야 한다. => 다형성을 활용하자 LSP ( 리스코프 치환 원칙 ) ISP ( 인터페이스 분리 원칙 ) DIP ( 의존관계.. 2022. 8. 2. 5. 개념 1. 클래스(class) 자바에서 클래스(class)란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용됩니다.자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 됩니다. 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성됩니다.즉, 필드(field)란 클래스에 포함된 변수(variable)를 의미합니다. 또한, 메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있습니다. 클래스는 생성된 객체의 필드를 초기화해주는 특별한 메소드인 생성자(constructor) 2. 생성자(constructor) 클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성됩니다. 하지만 이렇게 생성된 객.. 2022. 7. 18. 4. 스프링 웹 개발 기초 간단하게 알아보는 웹 개발 방식 3가지 1. 정적 페이지 : 웹브라우저 localhost:8080/hello-static.html을 url에 입력 -> 내장 톰캣 서버가 요청을 받고 이를 스프링에 전달 -> 그러면 controller에서 우선순위로 hello-static이 있는지 검색 후 존재하지 않다면 resources에서 검색 -> 찾으면 이를 변환하지 않고 그대로 웹브라우저로 처리 2. MVC (Model, View, Controller) : localhost:8080/hello-mvc을 url에 입력 -> 내장 톰캣 서버 -> helloController에서 hello-template(View로 지정한 html 파일명)를 return, (model의 키는 name이고 값은 spring) ->.. 2022. 7. 14. 3. Java (TDD, GCC) 🏴☠️ TDDTip실패하는 테스트를 만들어라 → 빨간색꼼수를 써서 테스트를 통과하게 만들어라 → 그린리팩토링을 하라 → 블루👉🏻Tip 2 ❗ctrl + 함수 클릭수정할 곳 드래그 후 alt + shift + r 누르고 이름 변경하면 한번에 모두 변경됨. 리팩터링은 동작을 변경하지 않으면서도 보다 간편하게 유지 관리하고 파악하며 확장할 수 있도록 코드를 수정하는 프로세스리팩토링의 목적은 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것이다. 👉🏻왜 리팩토링을 해야 하는가?코드의 구조가 망가지는 효과는 누적된다.코드의 디자인을 유지하도록 도와준다.중복을 제거함으로써 각각의 작업에 대한 코드가 오직 한 곳에만 있게 할 수 있다.소프트웨어의 디자인을 개선시킨다.소프트웨어를 더 이해하기 쉽.. 2022. 7. 14. 2. 객체지향 Java 객체지향의 4대 특성인 캡슐화, 상속, 추상화, 다형성 을 이용하여 객체 지향을 올바르게 설계할 수 있도록 도와주는 원칙객체 지향을 공부해봤고, 객체 지향으로 향 후 프로그래밍을 하려면 반드시 알아야 하는 중요한 원칙들이어서. 굉장히 중요하기 때문에 하나하나 원칙들을 정리해봤다. 아무리 객체 지향 4대 특성인 캡슐화, 상속, 추상화, 다형성을 잘한다고 해서 설계를 잘하는 것은 아니다. 물론 4대 특성의 묘미를 잘 살릴수록 설계가 좋다. 하지만 설계 원칙이라는 게 엄연히 존재하고, 또 나름 중요하기 때문에 각 원칙의 맨 앞 알파벳만 따와 "SOLID"라고까지 했을까? SOLID 원칙들은 결국 자기 자신 클래스 안에 응집도는 내부적으로 높이고, 타 클래스들 간 결합도는 낮추는 High Cohesion - .. 2022. 7. 14. 1. Java 🦤 JAVA일반 변수 값 할당👉🏻1️⃣ 오직 정수만 담을 수 있는 변수 x 생성. 규칙상 x에 정수 아닌 값이 들어있으면 안 되기 때문.👉🏻2️⃣ x에 기존에 저장되어 있던 쓰레기값이 사라지고 20이 저장된다.초기에는 x에 쓰레기 값인 0이 들어간다. 레퍼런스변수 값 할당👉🏻1️⃣ 오직 자동차 리모컨만 저장할 수 있는 변수 a자동차를 만든다.👉🏻2️⃣ 자동차 설계도(클래스)로 자동차 객체를 변수 외! 부! 에 만든다. 자동차 객체는 자신을 조종할 수 있는 리모컨(this)을 가지고 태어난다.👉🏻3️⃣ a자동차 변수에 안에 있는 리모컨의 달리다 버튼을 누른다. 해당 신호가 리모컨과 연결되어 있는 자동차 객체에 전달되어 달리다 기능이 실행된다.👉🏻5️⃣ 달리다 함수. 메서드 (함수)... 2022. 7. 13. 이전 1 다음