본문 바로가기

분류 전체보기54

자동 빈 VS 수동 빈 충돌!!! 빈 이름이 중복될 경우 서로 충돌이 난다. 그 중 자동 빈 vs 수동 빈의 충돌을 알아보자. 아래처럼 @Component 어노테이션에 의해 자동으로 빈 등록이 되어 memoryMemberRepository 라는 빈이 등록 되었다. @Component public class MemoryMemberRepository implements MemberRepository { private static Map store = new HashMap(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(me.. 2022. 5. 27.
Item25. 톱레벨 클래스는 한 파일에 하나만 담으라. 소스파일 하나에 톱레벨 클래스를 여러개 선언하더라도 자바 컴파일러는 불평하지 않는다. 근데 왜 하나만 담으라고 하지?? 👀 아무런 득이 없는데 SOLID 의 원칙 중 SRP 원칙을 위배하면서 까지 할 이유가 없다. 또한, 심각한 문제가 있다! * SRP 단일 책임 원칙(Single responsibility principle) : 하나의 클래스는 하나의 책임만 가져야 한다. 어떤 심각한 문제?? public class Main { public static void main(String[] args) { System.out.println (Utensil.NAME + Dessert.NAME ); // pancake } } // Utensil.java 에 정의된 두 클래스 class Utensil { stat.. 2022. 5. 24.
SOLID 좋은 객체지향 설계의 5가지 원칙 SOLID 클린코드로 유명한 로버트 마틴이라는 사람이 “좋은 객체지향 설계의 5가지 원칙” 이라고 구지 만들어놓음.... SRP : 단일 책임 원칙(Single responsibility principle) 하나의 클래스는 하나의 책임만 가져야 한다. 코드 수정을 해야하는데 파급 효과가 적다면?? 단일 책임 원칙을 잘 따른것! OCP : 개방-폐쇄 원칙(Open/closed principle) 막 뭐라 정의는 못하겠다.. 내가 이해한건 그냥 로미오와 줄리엣 대역!! 로미오가 아프면 대역이 대신할 수 있는게 개방-폐쇄 원칙 지킨거다..! 로미오인 주연에 의존하지말고 대역인 인터페이스를 이용해라 뭐 그런 의미인듯 예를들어 만약에 PM이 이번 기능은 A로 하기로했어 그렇게해! 라고 했는데 내가 보기엔 아무리생.. 2022. 5. 19.
다형성, 오버라이딩, 오버로딩 다형성(Polymorphism) 객체 지향 프로그래밍에서 가장 중요한 개념이라 할 수 있다는데 그래서 뭐지??? ➡️ 같은 자료형에 여러 객체를 대입하여 다양한 결과 도출!! 쉽게말해서 이름 그대로 여러가지 형태를 가질 수 있다는 의미이다. 이러한 다형성의 대표적인 방법은 오버라이딩과 오버로딩이 있다. 그래서 오버라이딩과 오버로딩은 뭔데?? 오버라이딩(Overriding) 상속을 받아 부모클래스의 메서드를 재정의!! 부모클래스와 메서드가 동일하지만, 구현내용을 다르게 재정의하여 사용할 수 있다. 오버로딩(Overloading) 메서드를 생성할때 매개변수의 타입과 개수를 다르게하여 같은 이름의 메서드를 여러개 생성할 수 있는것. void Apple(int a){} void Apple(int a, int b.. 2022. 5. 19.
React Typescript 프로젝트 생성 1. 새로운 React TypeScript 프로젝트 만들기 npx create-react-app [프로젝트 명] --template typescript or yarn create react-app [프로젝트 명] --template typescript 1-1. 이미 만들어진 프로젝트에 TypeScript 적용하고 싶다면? 1. 타입 정의 파일 다운 npm install --save typescript @types/node @types/react @types/react-dom @types/jest # or yarn add typescript @types/node @types/react @types/react-dom @types/jest 2. Typescript 코드 작성을 위한 typescript 패키지 .. 2022. 3. 1.
[Javascript] ES11 의 유용한 문법 ✨ Javascript ES11의 유용한 문법 ECMAScript 2020 버전인 ES11 중에 내가 이해한 것들 두 가지만 정리를 우선 해보려 한다. Optional Chaining과 Nullish Coalescing Operator에 대해 알아보자. ✨ Optional Chaining { const person1 = { name: "Wendy", job: { title: "S/W Engineer", manager: { name: "Bob", }, }, }; const person2 = { name: "Bob", }; // Bad Code { function printManager(person) { console.log(person.job.manager.name); } printManager(perso.. 2021. 8. 6.
[javascript] ~ES6 의 유용한 문법 ✨ Javascript ES6의 유용한 문법 2015년도에 나온 Javascript ES6 문법에는 유용한 문법이 많다. 오늘은 이러한 javascript ES6 문법 중 유용한 문법 몇 개를 살펴보자. 💡 Arrow function ( 화살표 함수 ) // Before Arrow function const simplePrint = function () { console.log("simplePrint!"); }; // Arrow function const simplePrint = () => console.log("simplePrint!"); // Before Arrow function const add = function (a, b) { return a + b; }; // Arrow function co.. 2021. 8. 2.
[Javascript] javascript에서의 동기와 비동기방식 ✨ 동기방식 & 비동기방식 이란? javascript의 Promis, async, await를 배우며 콜백 함수, 동기방식, 비동기 방식이라는 용어가 등장하였다. 콜백 함수는 아래에 따로 작성해 놓았다. https://mynameisleeminee.tistory.com/44 [Javascript] Callback 함수란 무엇일까? ✨ CALLBACK 함수란? Javascript 를 공부하던 도중 Callback 함수라는 것이 나왔다. Callback 함수가 도대체 무엇이길래 Callback, Callback 하는 것일까? 일단 내가 이해한 대로 정리해본다. • 말 그대로 콜백... mynameisleeminee.tistory.com 그럼 오늘은 동기방식, 비동기 방식이 무엇인지 알아보도록 하자. ✨ 동기.. 2021. 8. 1.
[Javascript] Callback 함수란 무엇일까? ✨ CALLBACK 함수란? Javascript 를 공부하던 도중 Callback 함수라는 것이 나왔다. Callback 함수가 도대체 무엇이길래 Callback, Callback 하는 것일까? 일단 내가 이해한 대로 정리해본다. • 말 그대로 콜백. 나중에 실행되는 함수이다. • 개발자가 함수를 선언하여 호출하는 함수가 아닌, 함수 내부 or 다른 이벤트에 의해 호출되는 함수이다. 코드를 보며 더 자세히 알아보자. function randomQuiz(answer, printYes, printNo) { if (answer === 'love you') { printYes(); } else { printNo(); } } const printYes = () => console.log('I love you to.. 2021. 7. 28.
[JavaScript] 변수 let, 상수 const, 데이터 타입 JavaScript에서 값을 선언할 때, let과 const가 있다. let은 변수. 변하는 수. 즉, 한번 선언하고 나서 바뀔 수 있는 값에 사용한다. let value = 1; console.log(value); value = 2; console.log(value); const는 상수. 한번 선언한 후 값이 바뀌지 않을 때 사용한다. (변수를 선언할 때 var도 있었지만 모던 자바스크립트에서는 이제 더 이상 사용하지 않는다) const a = 1; a = 2; 위의 let과 const의 데이터 타입으로는 숫자, 문자열, boolean(참/거짓), null과 undefined가 올 수 있다. 문자열(String)을 나타낼때는 "(큰따옴표) 또는 '(작은따옴표)로 감싸주어야 한다. 또한 null은 이 값.. 2021. 6. 23.