전체 글 51

LeetCode 1768 문제

해당 문제를 풀면서 느낀 것들을 정리합니다. java로 알고리즘 문제를 풀다보면 런타임에 신경써야 합니다. 그 중 String을 다룰때 Stringbuffer, StringBuilder 클래스를 사용해 런타임을 줄일 수 있습니다. 어떤 두 값의 최대값을 구하기 위해서 math 클래스의 max 메소드를 사용하는 방법이 있습니다. 동일한 타입 변수 선언은 콤마를 이용해 한줄로 나타낼 수 있습니다. int a=1,b=2;

java String 클래스 메소드 정리

java 알고리즘 공부를 하면서 필수적인 String 클래스의 메소드 정리입니다. 리턴 타입 메소드 이름(매개 변수) 설명 char charAt(int index) 특정 위치의 문자를 리턴합니다. boolean equals(Object anObject) 두 문자열을 비교합니다. byte[] getBytes() byte[]로 리턴합니다. byte[] getBytes(Charset charset) 주어진 문자셋으로 인코딩한 byte[]로 리턴합니다. int indexOf(String str) 문자열 내에서 주어진 문자열의 위치를 리턴합니다. int length() 총 문자의 수를 리턴합니다. String replace(CharSequence target, CharSequence replacement) tar..

interface란

인터페이스란 구현된 것이 없는 밑그림만 있는 기본 설계도 추상 메서드와 상수만을 멤버로 가질 수 있음→추상 클래스보다 추상화가 더 높다 인터페이스의 상속(extends) 인터페이스는 인터페이스로부터 상속받을 수 있다. 인터페이스의 구현(implements) 그 자체로는 인스턴스를 생성할 수 없다 class를 통해 인터페이스로 선언된 추상 메서드를 구현할 수 있음 장점 표준화 서로 관계 없는 클래스들에게 공통적으로 구현하도록 함으로써 관계를 만들어줄 수 있음 독립적인 프로그래밍 가능 ⇒ 한 클래스의 변경이 관련된 다른 클래스에 영향을 미치지 않도록 독립적인 프로그래밍 가능 결합도를 느슨하게 만들 수 있다 다형성 구현할 수 있다. ⇒ 다른 클래스이지만 인터페이스를 이용해 같은 ⇒개발 코드를 수정하지 않고 사..

AOP란

개념 AOP(Aspect Oriented Programming) 언제 왜 쓰는지 알면 된다 공통 관심 사항 vs 핵심 관심 사항 공통 관심사항과 핵심 관심 사항이 섞여있으면 유지보수가 어렵다 또한 공통의 관심사항을 만들기 어렵고 변경시 모두 변경해야 함 AOP는 공통 관심 사항(cross-cutting concern) 과 핵심 관심 사항(core concern) 을 분리하는 것 적용 클래스 범위에 @Aspect 어노테이션 빈으로 등록 해야함 ⇒@component로 등록 혹은 configuration파일에 @Bean 으로 등록 (보통 후자를 사용한다. 이유는 config 파일에 올리면 특별하니까) 메서드 범위에서 AOP 어노테이션 사용함 AOP 어노테이션 Before(”$pointcut}”)이 어노테이션이..

개발공부/개념 2022.09.03

@Deprecated 란

@Deprecated 타입, 필드 메소드 등에 붙일 수 있음 표시 되어 있는 메소드나 필드를 사용하면 빌드할 때 워닝 메시지를 보여준다. 컴파일러에게 이 메소드는 없어질거라는걸 알려주고 쓰지 말도록 경고하는 것이다. @deprecated Javadoc 으로 이 메소드는 어떤 이유로 사라지며 대신 어떻게 사용하라는 내용을 담아 Javadoc을 보는 사용자에게 알려주는 것이다. 출처 https://blog.leocat.kr/notes/2017/04/08/java-deprecated-and-deprecated

[0825] 프로그래머스 자릿수 더하기

내가 놓친것 : 1. 조건을 나누지 않았다 1의 자릿수 n의 자릿수 두 가지로 나눠지는 문제였다 조건은 눈에 보일수도 안보일수도 있다 그렇기 때문에 문제를 풀면서도 이 점을 항상 염두해두자 2. 조건을 찾지 못하니 조건에 부합하는 방식을 채택하지 못했다 조건을 찾지 못해서 while문과 if문으로 조건 반복, 재귀함수 를 이용하는 법 둘 다 놓치게 되었다 3. 기존 함수를 제대로 사용하지 않았다. sum 함수, 람다 식, map 함수등을 이용하면 불필요한 for문을 사용하지 않아도 됐었다

개인적인 생산성 팁 - todoist

TODO 리스트 변천사 종이 포스트잇 ⇒ 아이폰 미리 알림 ⇒ Notion table로 구현 을 거쳐 현재는 todoist 로 정착했다 정착한지는 일주일 조금 넘었다 현재 환경을 말하자면 TODO LIST 는 업무적 수행 리스트를 짜는데 주로 사용한다 업무는 주로 윈도우를 사용한다 단축키에 미쳐 돌아가는 편이다 회사 업무 뿐만 아니라 개인 외주 작업까지 커버해야 하기 때문에 연동성도 중요했다. todoist 를 추천하는 이유는 첫번째, 단축키 윈도우 환경에서 todoist 가 한번이라도 실행됐다면 단축키 하나로 바로 실행(win+alt+s), 작업 빠른 추가(win+alt+q)가 손쉽게 가능하다 또한 프로그램 내에서 단축어도 어느정도 직관적이여서(q는 작업 생성, t는 마감시간, ?는 단축키 도움말등....

기타/사담 2022.08.11

git gui 변경했다

처음에는 git desktop을 사용했다가 회사 입사하고 git sourcetree를 사용했다. sourcetree를 사용하면서 불편한 점이 계속 발견되었다. 지속적으로 commit 한 값이 이상하게 깨지는 현상이 계속 발견되었고, 버그로 인해서 스스로 꺼지는 것 등등등... 제일 큰 문제는 commit 한 값이 변경되는 것 때문에 열불이 나서 바꾸게 되었다 이번에는 gitkraken 을 사용하게 되었는데 적응중이다 git sourcetree는 bash를 켜는게 좀 불편해서 정확한 명령어를 칠때만 열게 되었는데 gitkraken은 bash 켜는 것도 깔끔하고 좋다 아마 bash 자주 사용할거 같다 써보고 gitkraken 후기를 작성해볼것이다 잘가 sourcetree 입사하고 반년동안 잘 썼다.

기타 2022.08.11