전체 글 120

[Java] 객체지향 프로그래밍2 (상속, 오버라이딩, package, 제어자)

상속 정의 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 - 자손 클래스의 인스턴스를 생성하면 조상 클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다. - 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. - 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 장점 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. Ex. class Parent {} class Child extends Parent {} class Child2 extends Parent {} Child, Child2 클래스에 공통적으로 추가되어야 하는 멤버가 있다면, 두 클래스에 각각 따로 추가해주는 것보..

Language/Java 2022.12.24

[Java] 객체지향 프로그래밍1

객체지향 언어 객체지향 이론의 기본 개념 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상 세계를 구현하고 이 가상세계에서 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있다. 객체지향 언어의 주요 특징 1. 코드의 재사용성이 높다. 2. 코드의 관리가 용이하다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 클래스와 객체 클래스: 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성과 행위를 변수와 메서드로 정의한 것으로 객체를 만들기 위한 메타정보 객체: 클래스에서 정의한 것을 토대로 실제 메모리에 ..

Language/Java 2022.12.14

[Spring, Redis] Spring Data Redis에서 직렬화

직렬화 객체를 데이터 스트림으로 만드는 것. 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것 객체를 다른 곳으로 전송하거나 저장하기 위해서 사용. 객체의 필드를 바이너리 형식이나 바이트스트림으로 바꾸는 작업. 직렬화 되는 대상은 객체의 인스턴스 변수 역직렬화 직렬화의 반대로 다시 객체의 형태로 만드는 것 Redis의 데이터 저장 형식은 byte array형태이다. 직렬화가 필요하다 Spring Data Redis 직렬기 JdkSerializationRedisSerializer RedisCache와 RedisTemplate에서 default로 사용됨 StringRedisSerializer String형태로 저장 JacksonJsonRedisSerializer Json형태로 저장 객..

Framework/Spring 2022.12.14

[MySQL] GROUP BY와 HAVING

GROUP BY 특정 컬럼 이름을 지정 해주면 그 컬럼의 UNIQUE한 값에 따라서 데이터를 그룹 짓고, 중복된 열은 제거한다. 보통 집합 함수 (AVG, SUM, COUNT 등) 과 같이 쓰인다. https://kk-programming.tistory.com/38 참고 HAVING GROUP BY한 결과에 조건을 붙이고 싶을 때 사용한다. GROUP BY의 WHER절과도 같다. https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT U..

Database/SQL 2022.12.04

[Redis] 레디스 영속성 (Redis persistence)

✅ Redis Persistence Persistence는 solid-state disk (SSD)와 같은 내구성 있는 저장소에 데이터를 쓰는 것을 의미한다. 📌 Persistence Options RDB (Redis Database) 지정된 간격으로 데이터 세트의 특정 시점 스냅샷을 수행 AOF (Append Only File) 서버에서 수신한 모든 쓰기 작업을 기록 append only file 방식으로 입력, 수정, 삭제가 실행될 때마다 로그가 저장되며, 기본적인 설정으로는 appendonly.aof 파일의 로그가 저장되는데 조회는 제외하고 저장된다. 서버 시작 시 기록된 쓰기 작업이 다시 재생되어 데이터 세트를 재구성할 수 있다. No Persistence 영속성을 완전히 비활성화 RDB + AO..

Database/NoSQL 2022.12.04

[프로그래머스-그리디] 조이스틱 JAVA 자바

https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👉 풀이 public class p42860 { // https://school.programmers.co.kr/learn/courses/30/lessons/42860 public int solution(String name) { int answer = 0; int len = name.length(); int move = len-1; // 좌우 움직임 최소 값 for(int i = 0; i < l..

[프로그래머스-그리디] 큰 수 만들기 JAVA 자바

https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👉 풀이 숫자를 지워서 만들어야 하므로, number.length() - k 자리수가 보장되도록 한 상태에서 큰 수를 만들어야 한다. 보장되어야할 자릿수를 남겨두고, 나머지 부분에서 최대값을 찾는다. 그 값을 answer의 앞자리수부터 이어 붙인다. 예를 들어 number = "4177252841", k=4 현재 뽑아얄할 숫자는 6개이므로, 1개를 뽑더라도 무사히 6자리를 만들 수 있도록 numb..

[JMeter] URL 인코딩 하지 않아 에러율 증가

JMeter로 성능테스트를 하는데 아래와 같이 오류가 많이 발생했다. 오류는 부하를 많이 발생할 때 한계치를 측정하는 지표일 텐데.. 부하가 크지 않는데 에러가 많이 발생한다는 것은 뭔가 이상하다. 🤔 그래서 오류의 이유를 알기 위해서 결과 트리를 확인해 보았다. 응답 Body에 오류 내용을 볼 수 있다는 것을 알게 되었다. 🤗 요청 시 URL에 파라미터 값들이 깨져서 들어간다. 이는 URL인코딩을 해주지 않았기 때문이다. 아래의 이유로 URI는 인코딩을 해주어야 한다!! URL 인코딩이란 URL에서 URL로 사용할 수 없는 문자 혹은 URL로 사용할 수 있지만 의미가 왜곡될 수 있는 문자들을 '%XX'의 형태로 변환하는 것을 말한다. URL 인코딩이 필요한 이유는 다음과 같다. 1) 인터넷을 통해 전송..

ErrorLog 2022.11.24

[JMeter] JMeter 설정 값, 통계 값

✅ Thread-Group 설정 값 📌 Number of Threads(users) Ramp-up Period 동안 실행할 user수 📌 Ramp-up Period(in seconds) 한번의 실행을 몇초 동안 완료 시킬것인지 Number of Treads가 5이고, Ramp-up Period가 1이라면, 1초동안 5번의 요청을 한다. 📌 Loop Count 반복하고자 하는 횟수. Infinite를 체크할 경우 무제한으로 실행 ✅ Report 통계 값 📌 Label sample들의 label, 이름 📌 # Samples 실행되는 sample들의 수 #Samples = Threads(users)의 수 × Loop Count 📌 Average(millisecond) 결과 응답 시간의 평균 응답 시간은 요청이..

Etc 2022.11.24

[Linux] scp를 통해 Local, Remote 파일 송수신 feat. Local, EC2

✅ SCP? Secure Copy의 약자로 ssh 원격 접속 프로토콜을 기반으로 원격지에 있는 파일과 디렉토리를 업로드 하거나 다운로드 할 때 사용하는 파일 전송 프로토콜 네트워크 통신이 가능한 환경에서 ssh와 동일한 22번 포트와 Identity file을 사용하여 보안이 안정된 프로토콜 ✅ 옵션 -r 디렉토리 내 모든 파일 및 디렉토리 복사 -p 원본 권한 속성 유지 복사 -P [포트 번호] 포트 번호 지정 복사 -c 압축 복사 -v 과정 출력 복사 -a 아카이브 모드 복사 ✅ Local (로컬) → Remote (원격지) 모든 명령어는 로컬 서버에서 입력한다. 📌 단일 파일 업로드 scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치] $ scp test1.txt root@192..

개발환경/Linux 2022.11.21