protected 접근제한자
2021. 7. 23. 16:30
JAVA
protected 접근 제한자는 상속에 쓰이면 편한 접근 제한자이다. protected는 public과 default 접근 제한의 중간쯤에 해당된다. 같은 패키지에서는 default와 같이 접근 제한이 없지만 다른 패키지에서 자식 클래스는 접근을 허용한다. protected는 필드, 생성자, 메소드 선언에 사용될 수 있다. 위의 그림의 경우 D클래스는 A의 필드, 생성자, 메소드에 접근이 가능하다. 하지만 new 연산자를 사용해서 생성자를 직접 호출할 수 없고, 자식 생성자에서 super( )로 A 생성자를 호출할 수 있다.
Set 과 Iterator
2021. 7. 23. 16:04
JAVA
Set Set 인터페이스를 구현한 모든 Set 컬렉션 클래스는 다음과 같은 특징을 가진다. 1. 요소의 저장 순서를 유지하지 않는다. 2. 같은 요소의 중복 저장을 허용하지 않는다. 대표적인 Set 컬렉션 클래스에 속하는 클래스는 다음과 같다. 1. HashSet 2. TreeSet HashSet 클래스 HashSet 클래스는 Set 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나이다. JDK 1.2부터 제공된 HashSet 클래스는 해시 알고리즘(hash algorithm)을 사용하여 검색 속도가 매우 빠르다. HashSet 은 가장 기본적인 Set 컬렉션의 클래스인데, 입력 순서를 보장하지 않고, 순서도 마찬가지로 보장되지 않는다. 그러면 어디에 쓰이냐는 생각이 들 수도 있다. 가장 쉽게 이해할..
백준 알고리즘 파이썬(Python) 9012번 괄호
2021. 7. 22. 14:43
Algorithm
처음에는 ( 가 나온다면 +1을 해주고 ) 가 나온다면 -1 을 해주어서 마지막 총합이 0이 나오면 YES를 출력해주고 총합이 0이 아니라면 NO를 출력해주려고 했다. 하지만 ( ) ) ( ( ) 같은 경우 가운데 ' ) ( ' 때문에 합이 0이 나오지만 VPS 즉 괄호가 닫히지 않는다. 그래서 생각해본 방법은 입력값을 문자열로 받은 다음 ' ( ) ' 가 있다면 While 문과 replace를 사용하여 지속해서 ' ( ) ' 를 삭제해주고 마지막까지 문자열의 길이가 0 이 아니라면 N0, 0이라면 YES를 출력해 주는 것이다 n = int(input()) for i in range(n): data = input() answer = True while answer == True: #while문을 이용해 ..
간단한 API 작성
2021. 7. 21. 13:35
Spring
📖 왜 API는 JSON으로 쓰일까? API형식으로 데이터를 받을 때, JSON을 사용한다. 왜 그럴까? 장점이 있기 때문이다. 어떤 장점? 바로 범용성이다. 클라이언트는 사실 수도 없다. 웹 기반의 브라우저, 앱 기반의 스마트폰, IoT 등… 수도 없다. 수많은 클라이언트 별, 맞춤 뷰 페이지를 만드는 것은 어렵다. 이를 해결하는 방법이 역할 분담이다. 서버는 데이터만 전달하고, 클라이언트는 이를 받아 화면에 보여주기로 하는 것이다. 이때 데이터는 JSON으로 나타낸다 단순하게 스프링이 크게 2가지 다른 방식을 제공한다고 이해하면 된다. 화면 파일을 찾는 기능 HTTP에 바로 응답하는 기능(@ResponseBody) @ResponseBody를 사용하면 경로라는 개념이 없다. HTTP 메시지 바디에 직접..
롬복(Lombok) 과 리펙토링(Refactoring)
2021. 7. 21. 10:21
Spring
📌 왜 롬복(Lombok)을 쓰는가? 모델 Class(VO, DTO, Entity) 를 만들 때, 생성자, 접근자, 설정자, toString() 등 매번 만들어야 하는 번거로움이 있다. 개발 초기에는 모르겠지만 하지만 잦은 수정과 필드명 변경 추가에 따라 관리가 쉽지 않아질 수 있다. 그래서 롬복(Lombok)은 자바 클래스를 만들때 자주 사용되는 getter/setter나 toString 등의 코드를 애너테이션으로 대체해서 선언하고 java 코드를 컴파일 할 때 그에 맞는 코드를 생성해주는 것이다. 기존 방식의 문제점 멤버변수를 제어하기 위해 모델 객체마다 반복적으로 메소드들을 생성해야 한다. IDE에서 generate를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야 한다. 사용 파..