728x90
반응형
SMALL

전체 글 67

프로그래머스) 약수의 개수와 덧셈 Lv1

요즘 코테 자신감이 떨어져서 자신감회복용으로 쉬운 문제들을 풀어나가고 있다(효과가 있을지도?!) 약수의 개수에 따라 해당 숫자를 더할지 뺄지를 결정하는 문제인데 나는 약수의 갯수를 구하는 메서드를 새로 하나 추가해서 boolean 값을 받아올 수 있게끔 만들었다! 정답 class Solution { public int solution(int left, int right) { int answer = 0; for(int i=left; i

코딩 테스트 2024.02.06

프로그래머스) 두 개 뽑아서 더하기 Lv1

손풀기 문제로 쉬워보이는 문제를 뽑아서 풀었는데 ArrayList 중복 제거 방법을 만들어보려고 하다가 살짝 헤맸다... 이 문제는 각각 순서대로 ① 더한 값들을 모두 ArrayList에 저장 ② ArrayList 중복 제거 ③ ArrayList 값 배열에 넣기 ④ 배열 정렬 위 방식대로 문제를 해결했다 되게 정석적이고 쉬운 방식이긴한데 소스가 길어져서 다른 훌륭한 답변이 있나 다른 분들 답을 구경했는데 세상에.... 리턴 타입을 바꿔도 정답으로 처리가 된다 흠.... 그렇다면 내꺼 소스도 굳이 ArrayList를 배열로 변환하지 않아도 됬었겠다 생각이 들었다 ㅎㅎ 코테 문제는 문제를 풀고 다른 사람들은 어떻게 문제를 풀었는지 구경하는게 재밌는거같다! 정답 import java.util.*; import..

코딩 테스트 2024.02.06

[SPRING] 스프링 컨테이너(Spring Container)란?!

스프링 컨테이너(Spring Container)란?! ApplicationContext 를 스프링 컨테이너라고 합니다. 스프링 컨테이너는 @Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용합니다. 여기서 @Bean 이라 적힌 메서드를 모두 호출하여 반환된 객체를 스프링 컨테이너에 등록합니다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 합니다. // 스프링 컨테이너 생성 ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); 일반적으로 'IOC 컨테이너' 와 '스프링 컨테이너'는 동일한 의미로 사용됩니다. IOC 컨테이너는 Inversion Of Control(제어의..

개발지식 2024.02.05

[SPRING] DI(Dependency Injection) 의존관계 주입, DI 컨테이너

DI 의존관계 주입 객체 간의 의존성을 외부에서 주입하여 결합도를 낮추고 유연한 코드를 작성하는 방법입니다! DI(Dependency Injection) 는 객체 간의 의존 관계를 외부에서 결정하여 객체가 필요한 의존성을 주입받는 개념입니다. DI 를 통해 객체 간의 결합도를 낮출 수 있고, 코드의 재사용성과 테스트 용이성을 높일 수 있습니다. DI 는 주로 생성자, 메서드 매개변수, 속성에 의해 의존성을 주입하며, 의존성을 관리하는 컨테이너를 활용하여 객체의 생성과 관리를 담당합니다. 이를 통해 유연하고 확장 가능한 애플리케이션을 개발할 수 있습니다! 스프링 DI를 코드 예시를 통해 확인을 해보자! public interface MessageService { void sendMessage(String ..

개발지식 2024.02.05

[SPRING] IOC(Inversion of Control) 제어의 역전

IOC 제어의 역전 프레임워크가 내 코드를 대신 호출해 주는 것, 말 그대로 제어권이 뒤바뀌는 것을 제어의 역전이라고 합니다. 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했습니다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했으며 개발자 입장에서는 자연스러운 흐름이였습니다. 하지만 IOC(Inversion of Control)는 일반적인 객체의 생명주기를 개발자가 직접 관리하는 것이 아닌, 스프링 프레임워크가 객체의 생성과 관리와 같은 프로그램의 제어 흐름을 관리하는 것을 제어의 역전(IOC)이라 합니다. 프레임워크 VS 라이브러리 ● 프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면 그것은 프레임워크가 맞다 ● 반면에 내가 작성한..

개발지식 2024.02.05

프로그래머스) K번째 수 Lv1

배열 안 특정 범위 내에서 정렬은 한 뒤 k 번째 수를 구하는 문제! 배열의 범위를 자르는 방법에 대해서 이것저것 쑤시고, commands 랑 같이 사용하려고 하다보니 for문이 4개나 중첩되어가고 있었다... 이건 나도 보기 어렵고 아무리 잘쳐줘도 정답은 아닌 것 같아 고민을 좀 하다 힌트(질문하기)를 사용했다 참고한 내용 중 commands에 나오는 시작번호, 끝번호, 선택 번호를 변수로 두고 배열과 함께 처리하는 메서드를 만들어서 처리하는 방법을 확인하고 문제를 해결하였다! 그리고 다른 사람들은 어떻게 풀었나 확인을 해보니 배열을 정렬하는 함수 Arrays.copyOfRange 를 사용하여 문제를 풀었드라.... Arrays.copyOfRange(array, commands[i][0]-1, comm..

코딩 테스트 2024.02.05

프로그래머스) 기사단원의 무기 Lv1

1래밸 문제들 중 손풀기용으로 정답률이 높은 문제를 풀었다! 약수의 갯수를 구하고 제한 숫자가 넘으면 해당 숫자로 변경해야하는 문제 약수를 구하는 방법이 생각이 나질않아 구글링해볼까.... 하다가 그럼 안되지! 하고 열심히 고민을 해서 풀어보았다 후다닥 풀고 슬적 기대하면서 코드 실행을 해봤는데 테스트1 통과 테스트2 실패 class Solution { public int solution(int number, int limit, int power) { int answer = 0; for(int i=1; i

코딩 테스트 2024.02.05

프로그래머스) 대충 만든 자판 Lv1

지난 문제만 어려운줄 알았는데 이번거도 쉽지않다;; 1래벨이 어려운건지 아님 내가 못하는건지.... 키보드의 자판순서를 위한 for문, targets를 비교하기위한 for문, 순서대로 처리하기 위한 for문 3개를 만들다보니 너무 어지럽고 정신없어서 처음부터 다시 코딩했다 (실패한 흔적 ↓ ) import java.util.*; class Solution { public int[] solution(String[] keymap, String[] targets) { int[] answer = new int[targets.length]; int chk = 0; for(int i=0; i

코딩 테스트 2024.02.04

프로그래머스) 명예의 전당(1) Lv1

오랜만에 코딩테스트를 시작하고 가장 오래 걸린 문제... 각 리스트를 정렬하고 k 번째의 값을 뽑아내면 되는 문제인데, 맨 처음 문제를 읽을 때 머릿속으로 정리가 되지 않아서 식을 생각해내지 못했다. 그리구 ArrayList를 사용해야하는 문제인데 일반 배열을 사용해서 문제를 푸려고 했다가 괜히 더 빙글빙글 돌았다... 다른 사람들의 답을 보니 다양한 답들이 많았는데 대부분 ArrayList()에 값을 넣은 뒤 정렬을 하고 k 값과 비교해서 list.remove(0) 하는 방식을 많이 사용하더라... 배열에 대해 다양한 방법을 고민할 수 있는 문제였다 정답 import java.util.*; import java.util.Arrays; class Solution { public int[] solution..

코딩 테스트 2024.02.04

프록시(Proxy) 서버

Proxy란 대리인이라는 뜻으로 프록시 서버는 사용자와 원래의 서버 사이에서 중개자 역할을 하며, 사용자의 요청을 대신하여 원 서버에 전달하고 그 응답을 사용자에게 전달합니다. 이 과정에서 프록시 서버는 자주 요청되는 데이터를 캐시에 저장해두어, 같은 요청이 다시 오면 캐시에서 바로 데이터를 제공하여 효율성을 높이는 역할도 합니다! 예를 들어 프록시서버가 없을 경우를 가정해보겠습니다. 한국의 클라이언트가 미국의 원 서버에 접속하려고 하려고 한다면 캐싱 기능을 사용할 수 없어 접속이 오래걸릴 뿐 아니라 원서버에 직접 접속하는 과정에서 사용자의 실제 IP가 노출되어 보안에 취약해질 수 있는 점 등등 다양한 단점들이 존재합니다. 프록시 서버를 사용하지 않을 경우 단점들 ① 보안 취약성 프록시 서버는 사용자의 ..

개발지식 2024.02.04
728x90
반응형
LIST