전체 글(30)
-
SPRING] SOLID
SOLID SRP : 단일책임원칙 (single responsibility principle) OCP : 개방-폐쇄 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리원칙 DIP : 의존관계 역전 원칙 SRP 단일책임원칙 하나의 클래스는 단 하나의 책임만 가져야 한다. 클래스가 여러가지 역할을 수행하게 되면 코드를 이해하기 어려워 지고 수정이 필요한 경우 다른기능에도 영향을 주게 된다. 변경을 했을때 파급효과가 적으면 단일책임원칙을 잘 따른것이다. 예시: 주문처리와 결제기능을 담당하는 클래스가 하나의 클래스에 합쳐져 있을때 SRP에 위배된다. 각각 주문처리와 결제기능을 따로 넣어야한다. // SRP (단일 책임 원칙) 예제 // 주문을 처리하는 클래스 class OrderProcessor { ..
2023.06.08 -
JAVA] HashMap을 알아보자
Map map은 key-value를 저장하는 ADT이다 .같은키를 가지는 pair은 최대 한개만 존재한다. 키는 중복이 불가능하지만 value는 중복이 가능하다. 맵은 언제쓸까? 예를들어 전화번호부를 저장할때 ( key: 전화번호부 value: 이름) 투표와 투표수를 저장할때 등등이 있다. 일단hash, hashmap과hashTable, hash function, hashing은 뭐야. Hash란 데이터를 다루는 기법중 하나이며, 검색과 저장이 아주 빠르게 진행되는 특징이 있다. 데이터를 검색할때 사용할 key와 실제 데이터값이 한쌍으로 존재하고 key값이 배열의 인덱스로 변환되기 때문이다. 시간복잡도는 O(1)이다. 해쉬함수(hash function는 데이터를 효율적으로 관리하기 위해서 임의의 길이의 ..
2023.05.25 -
JAVA] 예외처리
예외처리 일반 예외 (Checked Exceptions) 일반 예외는 컴파일러가 체크해주는 예외로, 예상할 수 있는 예외 상황이 발생할 수 있는 메소드에서 발생할 수 있다 이러한 예외는 예외 처리를 해주지 않으면 컴파일 오류가 발생한다 예시) IOException, SQLException, ClassNotFoundException 실행 예외 (Unchecked Exceptions) 실행 예외는 컴파일러가 체크해주지 않는 예외로, 프로그램의 오류나 잘못된 사용으로 발생할 수 있는 예외다 이러한 예외는 예외 처리를 강제하지 않으며, 발생할 경우 프로그램이 비정상적으로 종료된다. 예시) NullPointerException, ArrayIndexOutOfBoundsException , ClassCastExcep..
2023.03.07 -
javascript] 원시타입과 참조타입
원시타입 let number1 = 1; let number2 = number1; number2 = 2; console.log('~1:', number1); console.log('~2:', number2); number 1의 값은 변했을 까 ? 💡 ~1: 1 ABC true ~2: 2 가나다 false number 1에서 값을 복사했지만 number2의 값을 변경해도 number1의 값은 변하지 않는다. 이것이 원시타입 변수이다. 참조타입 const obj1 = { num: 1, str: 'ABC', bool: true }; const obj2 = obj1; // obj2 = {}; // ⚠️ 오류 // ⭐️ const임에도 내부 값은 변경 가능함 주목 // 내부 변경 방지는 이후 배울 Object.fr..
2023.01.16 -
프로그래머스 )카카오 성격유형 검사하기 JAVASCRIPT
function solution(survey, choices) { const MBTI = {}; const types = ["RT","CF","JM","AN"]; types.forEach((type) => type.split('').forEach((char) => MBTI[char] = 0) ) choices.forEach((choice, index) => { const [disagree, agree] = survey[index]; MBTI[choice > 4 ? agree : disagree] += Math.abs(choice - 4); }); return types.map(([a, b]) => MBTI[b] > MBTI[a] ? b : a).join(""); }
2022.12.04 -
프로그래머스] 피로도 java
package Java; public class 피로도 { public static int answer = 0; public static boolean[] visit; public static int solution(int k, int[][] dungeons) { visit = new boolean[dungeons.length]; // 최댓값 int max = 0; DFS(k, dungeons, max); return answer; } public static void DFS(int k, int[][] dungeons, int max) { answer = Math.max(answer,max); for (int i = 0; i < dungeons.length; i++) { System.out.println..
2022.12.04