본문 바로가기

전체 글171

[Java] 람다식 (Lambda Expressions) 람다식 식별자 없이 실행가능한 함수 함수인데, 함수를 따로 만들지 않고 코드 한줄에 함수를 써서 그것을 호출하는 방식 문법이 간결한만큼 익숙해지면 가독성 면에서 장점이 크다.(람다식을 사용하지 말라는 사람도 많다.) 람다식 사용법 (매개변수, ...) -> { 실행문 ... } (매개변수, ...)는 오른쪽 중괄호 { } 블록을 실행하기 위해 필요한 값을 제공하는 역할을 합니다. 매개 변수의 이름은 개발자가 자유롭게 지정할 수 있으며 인자타입도 명시하지 않아도 된다. 기호는 매개 변수를 이용해서 중괄호 { } 바디를 실행한다는 뜻으로 해석하면 됩니다. 람다식 장점 코드를 간결하게 만들 수 있다. 코드가 간결하고 식에 개발자의 의도가 명확히 드러나므로 가독성이 향상됩니다. 함수를 만드는 과정없이 한번에 처.. 2022. 11. 20.
[Java]문자열 함수 substr(), substring(), slice() substr(a,b) : a 는 시작값, B는 길이 a번째 부터 b 길이만 잘라내서 표시 Substring(a, b) : a는 시작값, b는 종료값 a 번째부터 b번째 전까지 잘라내서 표시 ※substr() 에서는 b 번째가 아닌 b 길이 만큼까지 잘라내므로 차이가 있다. slice(a, b) : a는 시작값, b는 종료값 a번째 부터 b번째 전까지 잘라내서 표시 substring 사용법 String substring(int startIndex); String substring(int startIndex, int endIndex); startIndex는 시작지점의 인덱스 값이고, endIndex는 종료 지점의 인덱스 값이다. 두 방식 모두 return 값으로 문자열(String)이 리턴된다. 사용 예제 .. 2022. 11. 20.
[Java] 삼항 연산자 삼항연산자란 ? 조건(삼항)연산자는 세 개의 피연산자를 필요로 하는 연산자 if문을 사용하여 코딩을 할 경우 코드 라인이 의미 없이 길어지는 경우들이 종종 생깁니다. //if else int a; if(5 2022. 11. 20.
[Java]StringBuilder 란 ? StringBuilder 란 ? StringBuilder는 String과 문자열을 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용 그렇기에 속도도 빠르며 상대적으로 부하가 적다. 따라서 긴 문자열을 더하는 상황이 발생할 경우 StringBuilder를 적극적으로 사용하면 된다. [ String 클래스와 동일 메소드 ] charAt() - 특정 인덱스 위치의 문자 반환 indexOf() / lastIndexOf() - 문자열 검색해서 위치 반환 length() - 문자열 길이 반환 replace() - 검색된 문자열 교체 substring() - 특정 인덱스 범위 내 문자열을 복사해서 새로 생성된 인스턴스 반환 toString() - 문자열 출력 public class Ma.. 2022. 11. 20.
[Java] Stream이란 ? 스트림(Stream) 기존 루프문 처리의 문제점 기존 Java에서 컬렉션 데이터를 처리할때는 for, foreach 루프문을 사용하면서 컬렉션 내의 요소들을 하나씩 다루었다. 간단한 처리나 컬렉션의 크기가 작으면 큰 문제가 아니지만 복잡한 처리가 필요하거나 컬렉션의 크기가 커지면 루프문의 사용은 성능저하를 일으키게 되었다. 스트림의 등장 스트림은 Java8에서 추가된 기능으로 컬렉션 데이터를 선언형으로 쉽게 처리할수 있다. 복잡한 루프문을 사용하지 않아도 되며 루프문을 중첩해서 사용해야 되는 최악의 경우도 더이상 없어졌다. 또한 스트림은 병렬처리(Multi thread)를 별도의 멀티스레드 구현없이도 쉽게 구현 스트림의 정의 데이터 처리연산을 지원하도록 소스에서 추출된 연속된 요소로 정의할 수있다. //.. 2022. 11. 20.
JWT토큰 이란 ? 인증 방식 종류(Cookie & Session & Token) 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. JWT (JSON Web Token) 유저를 인증하고 식별하기 위한 토큰(Token) 기반 인증 토큰은 세션과 달리 서버가 아닌 클라이언트에 저장, 그렇기에 메모리나 스토리지 등을 통해 세션을 관리했었던 서버의 부담을 덜 수 있다. JWT가 가지는 핵심적 특징이 있다면, 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다는 것. 데이터가 많아지면 토큰이 커질 수 있으며, 토큰이 한번 발급된 이후 상용자의 정보를 바꾸더라도 토큰을 재발급 하지 않는 이상, 반영되지 않는다. JWT 구조 JWT는 . 을 구분자로 나누어지는 세 가지 문.. 2022. 11. 20.
[프로그래머스/알고리즘] 문자열 다루기 기본 (자바/Java) 문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. Step1. 문제분석 우선 문자열 s의 길이가 4혹은 6이기에 if ( s.length() == 4 || s.length() == 6 ) 로 길이를 정하고, 반복문과 문자열 s에 charAt를 통해 숫자가 아닌 값을 받으면 false로 리턴 Step2. 문제풀이 코드 class Solution { public boolean solution(String s) .. 2022. 11. 19.
20221119 프로그래밍 기초[알고리즘 스터디] -2 어제 기초적인 알고리즘 문제들을 풀었다. 별찍기, 짝수와 홀수 구분하기 두 정수 사이의 합 구하기, 문자열을 정수로 바꾸기 등 기본적인 알고리즘 문제들을 풀었는데 알고리즘 문제가 익숙하지 않다보니 어제도 많이 헤맸다. 그래도 하루 풀었다고 어떻게 문제들을 해결해 나가야 할지 조금 머리속에서 정리가 되고 있는 것 같다. for문과 if문 else문은 신이야... 뭔지도 모르는데 나는 그냥 손으로 끄적끄적 거리면서 하니까 뭔가 머리속이 더 정리가 잘되는거 같다.. 이렇게 간단하게 정리를 하고 이를 Intellij로 적어서 옮겨서 다음 값들을 조금씩 바꾸거나, 변수들을 수정하거나 나는 왜 알고리즘 문제가 재밌는 것인가 ,,, 프로젝트할때는 머리가 매번 깨져라 아팠는데 지금은 재밌다 ㅋㅋㅋㅋ 문제들을 풀면서 모.. 2022. 11. 19.
[프로그래머스/알고리즘] 문자열 내 p와 y의 개수 (자바/Java) 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다. 입출력 예 #2 'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 re.. 2022. 11. 19.