목록분류 전체보기 (138)
공부하는 스누피
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yQeik/btqGnIsWZvg/UKJmqqKTKqBPa9TsKGgZcK/img.png)
AOP(Aspect Oriented Programming) AOP는 여러 객체에 적용되는 공통 기능을 분리하는 프로그래밍 기법으로, 재사용성을 높여준다. OOP는 실제 세계의 사물을 모듈화(객체화)하는 것이지만, AOP는 부가적인 기능을 모듈화하는데 집중한다. ex) A 클래스와 B 클래스 둘 다 print라는 동일한 기능을 사용해야 할 때, print를 따로 분리한다. A 또는 B 객체를 사용하게 되면 Proxy가 자동으로 print 기능을 실행시켜준다. 스프링에서는 Proxy를 이용해 AOP를 구현한다. 자동으로 Proxy 객체를 만들어 주기 때문에 직접 Proxy 인터페이스를 구현하지 않아도 된다. Bean 객체가 인터페이스를 상속하면 별도 설정이 없는 이상 인터페이스를 이용해서 Proxy를 생성한..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVe0We/btqGje50tcK/KATuY80dUyMhdX1xy4z4Y1/img.png)
@Autowired 어노테이션 - 의존 자동 주입 기능을 사용하기 위해 대상 객체에 붙이는 어노테이션이다. - Bean 객체의 메소드에 붙이면 해당 메소드를 호출하고, 메소드 파라미터 타입에 해당하는 Bean을 찾아 인자로 주입한다. - 필드에도 적용할 수 있다. - 설정 클래스에서 직접 주입을 하지 않아도 되어 편리하다. - @Qualifier로 주입 Bean의 중복을 막을 수 있다. 없으면 Bean의 이름을 한정자(Qualifier)로 지정한다. - @Primary로도 중복을 막을 수 있다. @Primary가 붙여진 Bean을 우선시 한다. - required 속성을 false로 지정하면 Bean이 존재하지 않아도 메소드를 호출하지 않기 때문에 Exception 발생 안함. => 자동 주입 대상 타입..
1. 의존 주입 Dependency Injection 한 클래스가 다른 클래스의 메소드를 실행할 때 이를 '의존'한다고 표현한다. 의존 관계는 변경에 의해 영향을 받는 관계로, B 클래스가 A 클래스의 메소드를 실행할 때 A 클래스에 변경이 이루어지면 B 클래스에 영향이 가게 된다. 여기서 B 클래스의 메소드를 실행하는 C 클래스가 있다면, 이 변경은 C 클래스까지 전파된다. 의존 관계를 구현하기 가장 쉬운 방법은 B 클래스에서 A 클래스 객체를 직접 생성하는 방법이다. DI(Dependency Injection)는 의존하는 객체를 직접 생성하지 않고 의존 객체를 전달받는 방식을 사용한다. 즉, DI란 의존하는 객체를 전달받아서 사용하는 패턴이다. DI는 의존 객체 변경이 유연하다는 것이 큰 장점인데, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/m1gpW/btqGdDxvfba/JqIRvGKuYPoBl4HXU9f1F0/img.png)
https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 생각 과정 - 균형인지 테스트는 (의 개수와 )개수가 같은지 검사하는 메소드 check로 수행한다. - 올바른 괄호는 문자열의 첫 문자는 열린 괄호여야만 하고, 마지막 문자는 닫힌 괄호여야 한다. - 괄호 변환 알고리즘이 나와 있으니 그대로 따라 만들면 된다. - 재귀 함수는 받은 문자열을 문자열 u, v로 나누는데, u는 균형있는 괄호이고 더이상 나눠지지 않아..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buxusv/btqGbOsFPKT/kuZTDugP8lhIdT8i8d6uUk/img.png)
환경 - Oracle VM (에뮬레이터) - Windows10 - CMD 1. ares cli 설치 아래 링크로 들어가서 ares command line interface를 다운로드 받는다. https://www.webosose.org/docs/tools/sdk/sdk-download/ SDK Download This page provides the package download links for webOS Open Source Edition (OSE) SDK. Note Emulator is created as a virtual machine image when you build webOS OSE platform source code with qemux86 option configured. For mor..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/emRe0i/btqGdDKIzLU/W1La0ENzFekhV10HmP8KJ1/img.png)
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 생각 과정 - 길이가 n인 문자열을 1개, 2개,,,, n개씩 끊어 문자열 리스트에 넣는다. - 다 넣은 후 리스트를 순회하면서 같은 문자열이 반복되는지 검사한다. - 반복이 유지되면 count를 늘리고, 종료되면 count한 값과 이때까지 중복이었던 문자열을 StringBuffer에 붙인다. - 반복하지 않는 경우는 count없이 StringBuffer에..
- webOS란? LG에서 제공하는 웹 기반의 스마트 디바이스 플랫폼으로, 웹 개발자도 쉽게 IoT 서비스를 구축할 수 있습니다. Raspberry Pi 4를 지원하고 있고 2018년부터 오픈 소스로 공개되었습니다. - webOS 이미지 빌드 webOS를 Raspberry Pi에 올리려면 이미지 파일이 필요합니다. pre-built 이미지를 제공하고 있지만, 사용자가 직접 빌드할 수 있습니다. pre-built 이미지는 다음 링크에서 다운로드할 수 있습니다. http://build.webos-ports.org/webosose/ Index of /webosose/ build.webos-ports.org - 이미지 파일 종류 qemux86 -> 에뮬레이터용 (ViretualBox에서 실행. Raspberry..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Ny4HV/btqF1aP8lRV/91LxZEDctvqBEtBLyKZeUK/img.jpg)
https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 생각과정 - 주어진 문자열에서 한 문자씩 읽어서 숫자인지 아닌지 확인한다. - 숫자를 char 단위로 받으므로 받을 때 버퍼에 append한다. - S, D, T 문자를 받을 경우 숫자 입력이 종료되었으니 버퍼를 비우고 점수를 배열에 저장한다. - 저장 위치는 index로, 점수가 새로 저장될 때마다 증가한다. - *, # 문자를 받을 경우 index-1위치에 해당하는 점수를 갱신한다. - * 문자는 이전 점수에게도 영향을 미치니 index가 0이 아닐 때만 index-2 위치를 갱신해준다. 구현 class Solution { pub..