안녕하세요 오늘은 String 객체에 대한 이야기를 해보겠습니다. 문자열 생성 문자열은 자바에서 객체로 취급한다는거 알고 계셨나요? int,double,char는 원시 타입으로 해서 객체가 아닙니다. 그러므로 자체적으로 구현된 메소드들 또한 없죠. 위 타입을 객체 처럼 사용하기 위해서는 이미 만들어진 Wrapper 클래스를 사용하면 됩니다. 한번 String 객체를 생성해 보겠습니다. // 1 String str1 = new String("Hello World"); String str2 = new String("Hello World"); // 2 String str3 = "Hello World"; String str4 = "Hello world"; 위 사진은 보기 코드에 첫번째 new 로 객체를 생성했을..
안녕하세요 오늘은 자바 최상위 객체인 Object에 대해서 다뤄보겠습니다 자바 최상위 객체 Object 이해하기 public class ObjectEx { } 위 코드를 생성을 하면은 기본적으로 생략된 것이 3개가 있다 그 3개가 무엇일까요? 1) import java.lang.* 2) public class -> extends Object 3) public ObjectEx() { super(); } 위 3가지가 생략이 되어있습니다. 자바에서 자동으로 생략을 해주는 것 입니다. 컴파일러에서 자동으로 넣은 상태로 실행을 시켜주는 것입니다 묵시적으로 위 코드들은 무조건 들어가 있어야 합니다 위 3가지는 항상 들어가야하는 default 값 이라고 생각하면 됩니다 Object는 java.lang에 들어가있는 객..
안녕하세요오늘은 자바가 어떻게 동작하는지 랑 JVM 관점에서 Static이 어떻게 작동하는지 알아보겠습니다. 자바에서 클래스를 실행시키기 위해서는 메인메소드가 필요합니다.그러면 메인 메소드는 무엇일까요?public static void main(String[] args) { } 를 메인 메소드라고 부릅니다. 정확하게 말하면 스프링 환경이 아닌, 일반 자바를 다루는 환경에서 클래스의 어떠한 값을 콘솔에 출력하기 위해서꼭 있어야 하는 게 바로 메인메소드 입니다.public class StaticTest { public static void main(String[] args) { System.out.println("Hello World"); }} 위 값이 없다면 출력을 할 수가 없죠. 그리고 값,메소드 등을..
여러분이 생각하는 도메인은 무엇인가요? 제가 생각했던 도메인은 분야를 의미하는 뜻이 였습니다ex) 개발 분야에서, 결제,헬스,의료,등등 이런 분류를 도메인이라고 생각했습니다그럼 이책에서 말하는 도메인은 무엇일까요??이제 한번 배워보겠습니다 ✍️1.1 도메인이란?온라인 서점을 예시로 들어보자온라인 서점은 개발자가 구현해야 할 소프트웨어의 대상이 된다ex) 상품 조회, 구매, 결제, 배송 추적 등의 기능을 제공해야 한다-> 온라인 서점은 즉 소프트웨어로 해결하고자 하는 문제, 영역 즉 도메인에 해당한다그리고 상위 도메인을 기준으로 하위 도메인을 생성할 수 있다. 위 다이어그램으로 간단하게 표현을 할 수 있습니다.카탈로그 하위 도메인은, 고객에게 구매할 수 있는 상품 목록을 제공함주문 하위 도메인은 고객의 주..
들어가며 오늘은 자바에서의 참조에 대해서 알아보겠습니다. 위 내용을 이해하기 위해서는 Java 람다식에 대한 선수지식이 조금 있으면 좋다고 생각합니다. 람다식은 JDK8 에 처음으로 나왔고, 람다 문법을 사용하는 개발자분들도 현재 많이 있을거라고 생각합니다. 여러분들 중에서 람다 문법을 쓰다보면 가끔 알맞게 람다 문법을 잘 사용했는데자꾸 문법에 줄이 그어지는 상황을 보신적이 있을 것 입니다. 그리고 그 메시지를 확인해보면 이런 문구가 있습니다. 왜그럴까? 하고 Replace lambda 를 누르면 문법이 좀 신기한 모양으로 바뀌고, 간결해 지는 것을 볼 수 있습니다. 그리고 오류도 당연히 생기지 않죠 실제로 실행일 시켜봐도 같은 동작을 하는 것을 볼 수 있습니다. 한번 간단한 예제로 보겠습니다. 두..
안녕하세요 오늘은 디자인 패턴에 대해서 간단하게 알아보겠습니다. 디자인 패턴 디자인 패턴은 왜 필요할까요? 정답은 객체지향적 설계를 위해서 필요합니다. 코드 변경을 최소화 하면서 요구사항을 수용할 수 있음. 반복적으로 코드 설계를 하다보면 일정한 패턴이 생길꺼임 이러한 패턴은 특정 상황에 맞는 해결책을 빠르게 찾을 수 있도록 도와준다 그럼 디자인 패턴에 대해서 알아보자 디자인 패턴에 대표적으로 생성,행위,구조 3가지로 분류가 됩니다. 그중에서 일단 생성 디자인 패턴에 대해서 알아보겠습니다. 객체의 생성을 다루는 디자인 패턴 대표적으로 3가지가 있습니다. 1) 빌더 패턴 2) 싱글톤 패턴 3) 팩토리 패턴 단순 팩토리 패턴, 팩토리 메소드 패턴, 추상 팩토리 패턴 그중에서도 제일 많이 쓰이는 팩토리 메소드..
안녕하세요 오늘은 Solid원칙 에 대해서 알아볼 것 입니다. 원티드 백엔드 챌린지를 참고하여 작성을 했습니다! 주니어 개발자인 저한테 Solid원칙까지 신경쓰면서 코드를 짜고, 고민하는 것은 너무 힘들다고 생각합니다 그럼에도 불구하고 시니어 개발자들이 SOLID을 이야기를 가끔 하고는 합니다 왜 알아야하고, 어떻게 적용을 해야할지에 대한 고민을 항상 하고는 합니다. 그러면 왜 SOLID원칙을 지켜야하고 왜 사용해야 할까요? 답은 꽤나 간단하고, 명쾌한 답이 예~~전부터 나와있습니다 바로 가독성 확장성 재사용성 유지보수성 을 향상시키는데 도움이 되기 때문입니다. 여러분들도 알다시피, 객체지향에 4가지인, 캡슐화, 상속, 추상화, 다형성 을 활용하면 뭐가 좋을까요? 바로 위 내용하고 똑같을 것입니다. 결국..
안녕하세요🖐 공부를 하다가, 엔티티는 DB와 직접적으로 접근하는 영역이기 때문에 건들면 안된다는 이야기를 들었습니다 왜 건들면 안된다는 걸까요❓ 그러면 엔티티에 접근을 안하고, 어떻게 DB에 접근해서 CRUD를 진행할까? 라는 생각이 먼저 들었습니다. 이에 대한 내용을 포스팅 해보겠습니다. 일단 저는 간단한 Rest API 연습을 하기 위해서 CRUD 게시판을 짜기 위해 공부중이였습니다. 최대한 객체지향 적으로 짜기 위해, 스프링 3Layer Architecture 를 도입해서 진행을 했습니다. 설명 : https://hyeonq.tistory.com/131 일단 Entity를 생성을 하겠습니다. @Getter @NoArgsConstructor @Entity public class Question { @..