분류 전체보기
-
[JAVA] Static 키워드자바 2024. 8. 20. 10:41
[JAVA] Static 키워드코드를 짜면서 static이라는 키워드에 대해 생각을 하지 않았다 면접 준비할 때 static이 뭔지에 대해서 암기만 했을 뿐... 이번에 왜 메서드와 클래스에 static을 넣었냐는 질문을 받으니 그냥...이라gitofjy.tistory.com면접을 위해 단순 암기 했던 static 키워드그리고 면접 때 제대로 된 답변을 못해 한 번 더 공부 후 정리했었다.1년이 지난 지금 실무를 하고 다시 공부를 해보니 더욱 정리가 되는 느낌이다.정말 마지막 정리 ! 자바 메모리 구조1) 메서드 영역(Method Area)- 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 1. 클래스 정보 : 클래스의 ..
-
[JAVA] 불변 객체자바 2024. 8. 19. 13:27
아직까지 실무에서 불변 객체 사용할 일이 없었지만 언젠간 마주칠 것 같아 정리한다. 자바의 데이터 타입은 크게 기본형과 참조형으로 나눌 수 있다.조심해야 할 점은 참조형의 공유 참조로 인한 사이드 이펙트이다.( 사이드 이펙트(Side Effect)는 프로그래밍에서 어떤 계산이 주된 작업 외에 추가적인 부수 효과를 일으키는 것 ) public class RefMain1_1 { public static void main(String[] args) { // 참조형 변수는 하나의 인스턴스를 공유할 수 있다. Address a = new Address("서울"); Address b = a; System.out.println("a = " + a); System.out.pr..
-
[JAVA] equals() - 동일성과 동등성자바 2024. 8. 19. 12:51
자바는 두 객체가 같다는 표현을 2가지로 분리해서 제공한다.1) 동일성(Identity) : == 연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인 (물리적으로 같은 메모리에 있는 객체 인스턴스인지 참조값을 확인하는 것)2) 동등성(Equality) : equals() 메서드를 사용하여 두 객체가 논리적으로 동등한 지 확인 package lang.object.equals;public class UserV1 { private String id; public UserV1(String id) { this.id = id; }}package lang.object.equals;public class ..
-
[JAVA] Object 클래스자바 2024. 8. 19. 11:28
java.lang 패키지자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것 [ java.lang 패키지의 대표적인 클래스들 ]Object : 모든 자바 객체의 부모 클래스 String : 문자열 Integer , Long , Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것 Class : 클래스 메타 정보 System : 시스템과 관련된 기본 기능들을 제공 Object 클래스 자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 클래스이다.package lang.object;// 부모가 없으면 묵시적으로 Object 클래스를 상속받는다.// public class Parent extends Object {public class Parent { ..
-
[spring] DTO 와 VO 무슨 차이가 있을까스프링&스프링부트 2024. 8. 14. 15:58
현재 진행하는 프로젝트의 소스를 보는데 문득 VO에 로직이 이렇게 많이 들어있다고? 라는 생각이 들었다.저번에 했던 프로젝트에서는 VO가 아닌 DTO로 데이터를 전달했었고 그때는 로직이 전혀 없었기 때문에 문득 궁금해졌다.그동안은 DTO와 VO는 이름만 다르고 똑같이 데이터 전달하는거겠니 했는데 찾아보니 아니었다. DTO ( Data Transfer Object )- 순수하게 데이터를 담아 계층 간으로 전달하는 객체- 로직을 갖고 있지 않은 순순한 데이터 객체이며 메서드는 getter/setter만 갖는다. VO ( Value Object )- 값 그 자체를 나타내는 객체- Read-Only 속성으로 getter만 가능하다.- DTO와 다르게 로직을 포함할 수 있으며 VO의 경우 특정 값 자체를 표현..
-
[springboot] 의존성주입(DI)와 순환참조 문제 해결스프링&스프링부트 2024. 8. 14. 15:36
자바 - 생성자 인강을 보고 정리한 후 스프링 프레임워크 기반 실무의 코드를 보니, 더 많은 것들이 보였다.각 서비스마다 생성자 주입이 되어 있었는데 인강에서 보는 자바의 기본적인 생성자 주입 방법과는 차이가 있었다. 의존성 주입 (Dependency Injection, DI)DI란 외부에서 두 객체 간의 관계를 결정해 주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해 준다.- 의존성이란 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다.- 의존성 주입이란 두 객체 간의 관계를 맺어주는 것이다. 의존성 주입 방법1) 생성자 주입2) 필드 주입3) 수정자 주입( Spr..
-
[JAVA] 생성자자바 2024. 8. 14. 10:08
대부분 객체 지향 언어에서는 객체를 생성하자마자 즉시 필요한 기능을 좀 더 편리하게 수행할 수 있도록 생성자 기능을 제공한다. 생성자를 사용하면 객체를 생성하는 시점에 필요한 기능을 수행할 수 있다. 생성자의 장점1) 중복 호출 제거2) 필수값 입력 보장 package construct;public class MemberInit { String name; int age; int grade;}package construct;public class MethodInitMain1 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member1.name ..
-
Vue.js 3의 mount 와 생명주기Vue.js 2024. 7. 28. 16:55
회사에서 처음으로 화면개발 업무를 맡았고 vue3를 이용해 개발해야 했습니다. 다른 팀은 차세대 프로젝트를 진행하고 있었고 제가 소속된 팀은 그중에 작은 부분을 맡게 되었습니다. 팀이 다르다 보니 개발 가이드에 대한 접근 권한이 없었고 개발 중인 소스만을 파악해 화면과 서버 API를 개발했어야 했습니다. 처음에는 복붙으로 기본적인 개발은 끝냈으나 테스트 도중 다양한 버그를 만났고 그 버그를 수정하려고 보니 데이터를 언제 뿌려줘야 할까라는 고민이 들었습니다. 제가 마주한 문제 중 하나는 '팝업 실행 후 데이터를 지우고 오른쪽 상단의 엑스를 누르고 나갔을 때, 데이터가 삭제되지 않았으나 다시 팝업을 열었을 때 공란이 발생하는 것'이었습니다. 처음 시도했던 방법은 watch를 통해 데이터를 재호출하는 것이었..