분류 전체보기 61

면접 준비

RESTful한 API를 설계하는 장점은?- HTTP Method를 사용한다(GET, PUT, POST, DELETE 등)- HTTP 프로토콜의 표준을 최대한 활용하기 때문에 HTTP의 추가적인 장점을 함께 가져갈 수 있다- HTTP에서는 Stateless 즉, server가 client의 상태를 유지하고 있지 않기 때문에 응답과 요청이 독립적이고, 서버의 확장성이 높다- client의 요청에 세션, 쿠키 등의 방법으로 상태를 유지한다 적절한 관심사 분리가 필요한 이유는?- 프로그램의 유연성을 높일 수 있다 Setter를 무분별하게 사용하면 안되는 이유는?- DTO 같은 경우 전송 객체이기 때문에 데이터가 변경되지 않는다는 것이 보장되어야 한다, 이러한 경우에 Setter의 사용은 굉장히 위험하다  No..

면접준비 2024.08.26

프로그래머스 알고리즘 문제풀이 햄버거 만들기 (시간 초과)

https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제가 길게 적혀있긴 하지만 로직적으로 복잡한 문제는 아니다.문제는 시간초과class Solution { public int solution(int[] ingredient) { int answer = 0; StringBuilder sb = new StringBuilder(); for(int n : ingredient) { sb.append..

알고리즘, SQL 2024.08.22

Java 메모리 영역

JVM 메모리 공간 (Runtime Data Area) MethodJVM이 동작해서 클래스가 로딩될 때 생성Static 영역이라고도 함프로그램이 실행중이라면 어디서든 언제든 접근 가능Class와 Interface에 대한 runtime 상수 풀, 멤버 변수, Static 변수, final, Constructor, MethodStack원시 자료형, 지역변수, 매개변수LIFOThread별로 생성됨Method가 호출 될 때 메모리에 할당, 종료시 삭제Heap참조 자료형, 인스턴스, 배열메모리 정리는 가비지 컬렉터에 의해 이뤄짐

면접준비 2024.08.21

오버로딩 (Overloading), 오버라이딩 (Overriding)

오버로딩 (Overloading) : 과적하다 메소드명은 동일하지만 매개변수의 갯수나 타입이 다름public void eat() { System.out.println("냠냠");}void eat(String str) { System.out.println(str + "냠냠");}String eat(String str, int num) { System.out.println(num); System.out.println(str + "냠냠"); return "배불러";}void eat(int num) { System.out.println(num);} 오버라이딩 (Overriding) : 재정의부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의메소드명, 매개변수, 반환 값이 모두 같음

면접준비 2024.08.21

Spring의 세가지 키워드 IoC, PSA, AOP

IoC (Inversion of Control) : 제어의 역전강한 결합을 약한 결합으로 변경한다강한 결합이란? 개발자가 직접 생성하는 방식의존성 주입을 통해 강한 결합을 약한 결합으로 바꿀 수 있다 https://everyday-spring.com/583 IoC와 DIIoC (Inversion of Control) : 제어의 역전, 설계원칙DI (Dependency Injection) : 의존성 주입, 디자인패턴 비슷한 기능을 하는 객체로 변경을 하는 경우!강하게 결합되어 있다면 의존하는 객체의 코드도 수정everyday-spring.com PSA (Portable Service Abstraction) : 휴대용(?) 서비스 추상화서비스를 추상화하여 복잡한 로직은 숨기면서 개발자에게 편의를 제공한다@T..

면접준비 2024.08.19

IoC와 DI

IoC (Inversion of Control) : 제어의 역전, 설계원칙DI (Dependency Injection) : 의존성 주입, 디자인패턴 비슷한 기능을 하는 객체로 변경을 하는 경우!강하게 결합되어 있다면 의존하는 객체의 코드도 수정이 되어야 한다그러나 비슷한 기능을 하는 객체들을 Interface로 묶어준다면?-> Interface의 객체를 사용하여 새로 추가된 객체라도 코드 수정이 간단해진다 DI를 통한 IoC의존성 주입을 통한 제어의 역전 강한결합/* 강한 결합 */public class Consumer { void eat() { Chicken chicken = new Chicken(); chicken.eat(); } public static ..

면접준비 2024.08.14

프로그래머스 코딩테스트연습 133499 '옹알이 (2)'

https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요...

알고리즘, SQL 2024.08.13

Spring Boot MVC Controller @Controller 와 @RestController

@RestController를 사용하면 해당 클래스의 모든 Method에 @ResponseBody Annotation이 부여된다@Controller의 클래스에서 내부 Method에 @ResponseBody가 붙어 있는 것과 같다 ControllerHTTP Response@ResponseBodyReturn TypeReturn ValueHeaderBodyXString"{View name}"Content-Type: text/htmlView (HTML)의 text 내용 타임리프 기준/templates/{View name}.html"redirect:/{redirect URL}"Location:{Host URL}/{redirect URL}XOString"{Text}"Content-Type:text/html"{Tex..

TIL 2024.08.12