본문 바로가기

전체 글84

[Spring] IoC , DI 란? IoC (Inversion of Control) : 제어의 역전 프로그램의 흐름(실행 순서, 객체 생명 주기 등) 개발자가 직접 구현하여 제어하였다면, 이 흐름을 외부에서 제어하는것 = 제어의 역전! IoC가 적용된 대표적인 기술은 프레임워크이다. * 프레임워크는 내가 작성한 코드를 제어하고 대신 실행함 프레임워크의 경우, 프레임워크가 원하는 형식대로 프로그램을 구성하면(Controller,Service ...) 알아서 필요한시점에 호출, 생성등 직접 제어하여 프로그램을 실행한다. 객체 간 낮은 결합도 -> 유연한 코드사용가능 -> 유지 보수 용이 코드의 중복, 가독성 향상 등의 장점이 있다. DI (Dependency Injection) : 의존성 주입 2024. 2. 2.
[JAVA/Spring] 객체 지향 프로그래밍 객체 지향 프로그래밍 (object-oriented programming(OOP) : 프로그래밍에서 필요한 데이터를 추상화시켜서 상태(속성, 어트리뷰트)와 행위(메서드)를 가진 객체로 만들고, 그 객체간의 상호 작용을 통해 로직을 구성하는 방법을 의미한다. 객체 지향 프로그래밍 설계 5가지 원칙 1. SRP 단일책임 원칙 (Single Responsibility Principle) - 하나의 클래스는 하나의 책임만 가져야 한다. 변경이 있을때, 파급효과가 적으면 단일책임의 원칙을 잘 지킨것! 2. OCP 개방-폐쇄 원칙 (Opne-Closed Principle) - 소프트웨어 요소는 확장에는 열려있어야 하고, 변경에는 닫혀있어야한다. 3. LSP 리스코프치환 원칙 (Liskov Substitution P.. 2024. 1. 30.
[JAVA] 프로그래머스 - 키패드 누르기 풀이> 키패드를 2차원 배열로 구성한다 1 2 3 [0,0] [0,1] [0,2] 4 5 6 [1,0] [1,1] [1,2] 7 8 9 [2,0] [2,1] [2,2] * 0 # [3,0] [3,1] [3,2] 배열 구성을... 보이는대로 거꾸로 적용하였는데 손가락의 위치와의 키패드의 거리를 구하기 위해 구현한 것이라 문제 없을 것 같다! ex) 1 => [3,0] / 2 => [3,1] / 3 => [3,2] 4 => [2,0] 1,4,7 은 왼손 3,6,9 는 오른손 누른것을 추가해주고, 2,5,8,0은 현재 왼손,오른손의 위치와 키패드와의 거리를 계산 거리 차이가 적은 손을 답에 추가하고 거리가 같다면 , 어느 손잡이인지 검사 후(문제에서 주어지는 hand) 추가. public class Progr.. 2021. 8. 23.
[JAVA] 프로그래머스 - 숫자 문자열과 영단어 첫번째 풀이 > 문자열 하나씩 검사해, 숫자가 아닌 알파벳이 나온다면 (아스키코드로 검사) switch문으로 어느 단어인지 확인 후, 정답 배열에 저장한다. *원래 서툴럿지만,,,,,, 너무 볼품없는 코드였다 ㅠ 답 제출후, 다른사람의 풀이를 보자마자 다시 직접 풀어보았다. 모범 풀이 > public class Programmers16 { public static void main(String[] args) { //테스트용 입력 정의 String[] number = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; for (int i = 0; i < number.length; i++) if (s.conta.. 2021. 8. 22.
[HTTP:웹 기본 지식] 인터넷 통신 인터넷 통신은 복잡한 망 구조로 이루어져있다. 엄청난 노드들이 존재하기때문에 데이터를 전송하려면 노드들을 건너 건너 통신이 이루어짐 IP (Internet Protocol) - 고유의 IP주소를 지정해 데이터 전송 - 패킷단위로 데이터 전송 - 패킷에는 출발IP,도착IP,데이터...가 포함 한계점 - 비연결성 : 목적지가 없거나,서비스불능 상태여도 확인이 되지않음 - 비신뢰성 : 데이터 전송중 누락이발생하거나, 순서가 보장되지않음 - 같은 IP를 사용하는 여러개의 애플리케이션이 존재할경우 구분 불가 이런 IP의 한계들로인해 TCP/UDP 등장! 인터넷 프로토콜 스택의 4계층( TCP/IP ) 1. 응용계층 : HTTP,FTP,SSH 2. 전송계층 : TCP,UDP 3. 인터넷계층 : IP 4. 네트워크엑.. 2021. 2. 19.
[JAVA]프로그래머스 - 실패율 풀이 > 스테이지별 실패율을 계산하고 몇번째 스테이지의 실패율인지 Map으로 기록 실패율로 스테이지를 정렬하고 출력하기! Collection프레임워크를 int[]로 바꾸기 .stream().mapToInt(i->i).toArray(); 기억하기! import java.util.*; public class Programmers15 { public static void main(String[] args) { //테스트용 입력 정의 int N = 5; int[] stages = {2, 1, 2, 6, 2, 4, 3, 3}; //스테이지별 실패율 기록 배열 Double[] successRate = new Double[N]; //스테이지는 1부터 시작함으로 1~N //각 스테이지의 실패율을 계산에 배열에 입력 f.. 2021. 1. 2.