일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- QA
- XSS
- 자료구조
- 오블완
- springboot
- 테스트케이스
- 한화시스템부트캠프
- JPA
- 헥사고날아키텍처
- 스프링시큐리티
- 자바
- Java
- STOMP
- 티스토리챌린지
- kafka배포
- 부트캠프
- 프로토콜역할
- jwt토큰
- 엘라스틱서치
- Kafka
- N+1문제
- 메소드
- selenium
- 자동화워크플로우
- 프로세스와스레드의차이
- 캐시의 작동 원리
- 오버로딩
- 하이브리드접근법
- n8n
- nplus1
- Today
- Total
목록분류 전체보기 (73)
아쿠의 개발 일지

객체 지향 프로그래밍의 가장 중요한 개념이다.캡슐화는 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말 한다.속성과 기능을 하나로 묶고, 외부에는 꼭 필요한 기능만 노출하고 나머지는 모두 내부로 숨기는 것이다. 캡슐화를 안전하게 완성 시킬 수 있는 장치는 " 접근 제어자 " 이다. 1. 데이터를 숨겨라 객체에는 속성과 기능이 있다. 가장 필수로 숨겨야 하는 것은 속성이다.객체 내부에 데이터를 외부에서 함부로 접근하게 하면 클래스 내의 로직을 무시하고 데이터를 바꿀 수 있다.이로 인해서 캡슐화가 깨진다. Ex ) 음악 플레이어사용 할 때 전원부나, 볼륨 상태의 데이터를 직접 수정할 일이 있을까?모든 사람들이 플에이어의 전원을 켜고, 끄거나 볼륨을 조절하는 버튼을 누..

학생 수강(Enrollment, EnrollmentRepository, EnrollmentService, EnrollmentController) 학생 외래키 수업 외래키 수업(Lecture, LectureRepository) lectureName 각각의 엔터티가 다음을 가지고 있다고 치자.다 제외하고학생 - 수강수업 - 수강이렇게 관계를 맺어서 학생과 수업은 M:N 관계로 수강 테이블(중간)을 통해 join 하는 것을 만들고자 한다. 일단 ! 학생 - 수강import & getter & setter은 생략@Entitypublic class Enrollment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id..

@RestController@RequestMapping("/study") 일반 Controller는 View 페이지에 return하는 그런 컨트롤러고,RestController는 API 데이터를 요청한 곳에 객체 자체를 그대로 던질 때 JSON형태로 만들거나, 다른 형태로 만들어서 던질 때 쓴다.RequestMapping이라고 하는 것은 RequestMapping 옆에 study를 붙여놨기 때문이다. 위에 보면 /user라는 이름이 여러개 있는데, 이는 GET, POST, DELETE, PUT 방식이기에 다른 거다.PUT는 데이터를 수정할 때, DELETE는 삭제할 때 쓰고 GET은 @RequestParam을 써서 String userId를 GET방식으로 보내기 위해서 쓰고POST는 @RequestBod..

저번과 비슷하게 입 출금을 하는 건 똑같지만 사용자로부터 입력을 받아 입금과 출금을 반복하는 프로그램을 만들어봤다.출금 시 잔액이 부족하면 부족하다고 출력하고, 간단한 4가지 메뉴를 만들어서 수행할 수 있도록 했다. package method.ex;import java.util.Scanner;public class MethodEx04 { public static void main(String[] args) { int balance = 0; Scanner scanner = new Scanner(System.in); while (true){ System.out.println("-----------------"); System..

메소드 오버로딩? 같은 이름의 메소드를 중복하여 정의하는 것을 의미한다.자바에서는 원래 한 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없다. 하지만 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 작성할 수 있다.왜 이런 귀찮은 걸 쓰냐.추가를 하는 메소드를 여러개 만들어야 하는데, 그때마다 add01 , add02 이렇게 할 수는 없지않냐,,,add 라는 메소드에 매개변수나 타입을 다르게 지정해서 활용을 하는 것이다.이는 객체 지향 프로그래밍 특징 중 하나인 다형성을 구현한 방법 중 하나이다. 이를 활용하여 1번 코드를 2번으로 refactoring 한 것에 대해서 보여드리겠다,,,현재 잔액에서 입금과 출금을 하는 것이다.package method.ex;public class ..

벌써 8주차 회고록이라니 믿기지가 않는다. 그래도 믿어야지 어쩌겠나...일단 배움에 많은 변화가 생겼다. java가 끝나고 Spring 수업에 들어왔다는...!? 점이 가장 크게 변한 것 같다.8주차에서 2일은 알고리즘에 대해 배웠고, 나머지 3일은 Spring 이론과 약간의 실습?에 대해서 배웠다. 알고리즘은 저번 자료구조와는 다르게 발표 준비를 정말 열심히 했고, 나 혼자 뭐라도 구현을 하기 위해서 애쓴 것 같다. 우리팀은 Dijkstra 알고리즘에 대해서 맡게 되었고, 뭐... 역시나 어렵더라.착각?인 것 같지만 이해하기는 레드블랙트리보다 수월했던 것 같다. (아마도) Dijkstra 이란?다익스트라 알고리즘은 다이나믹 프로그래밍을 활용한 대표적인 최단 경로 탐색 알고리즘이다. 주로 가중치가 있는..

7주차 때는 자료구조에 대해서 배웠다.자료구조의 정의는 데이터 값의 모임, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 실행할 수 있도록 자료를 구분하여 표현한 것이다. 스택, 트리, 리스트에 대해서 배웠고 이를 활용하여 연결 리스트도 구현했고, 스택도 구현했다.스택은 정보처리기사를 공부하면서 알게 됐었는데, 이 개념을 직접 구현한다니까 많이,,, 어려웠다. 스택에서는 데이터를 저장할 수 있는 push 기능과, 비워내는 pop 기능이 대표적으로 있었다.public class Stack { Integer[] datas; Integer top; public Stack(Integer size) { this.datas = new Integer[s..

https://www.acmicpc.net/problem/9498 문제 풀이 방법은 Sanner로 입력 받아서 연산을 했다.Sanner 활용 방법을 분명 배웠는데 까먹어서 다시 공부했다.Scanner sc = new Scanner(System.in);int A = sc.nextInt(); 기본적으로 객체를 생성하는 방법은클래스이름 객체이름 = new 클래스이름(); 우리가 입력을 하기 위해서 Scanner을 쓰는 것이고, 쓴 값을 스캔하여 컴퓨터에게 전달을 해준다.괄호 안에 System.in을 써줘야 하는데, 이유는 사용자로부터 입력을 받기 위한 입력 스트림이기 때문이다.다양한 Sanner의 종류들이 있지만 점수를 입력해주는 문제이기 때문에 int형 입력이 필요해서 sc.nextInt() 를 썼다. i..

이번 6주차는 부하분산에 대해서 배웠다. 세션에 DB를 저장하고, 부하분산을 했을 때 세션 불일치 문제를 해결하는 것이다.여기에서 세션 클러스터링과 스티키 세션에 대해서 배웠는데,세션 클러스터링WAS가 두 대 이상 설치되어 있을을 경우 동일한 세션으로 세션관리를 하는 것을 의미한다WAS에 세션을 전부 복사한다.was 서버끼리 세션 복사를 한다.스티키 세션특정 세션의 요청을 처음 처리한 서버로만 전송하는 것을 의미한다. 이거 말고도 열거형, 제네릭, 컬렉션, 어노테이션, 스트림에 대해서 배웠는데 열거형의 사용enum 열거형이름 {상수명1, 상수명2, ...} 열거형에 정의된 상수를 사용하는 방법은 열거형이름.상수명이다.클래스의 static변수를 참조하는 것과 동일하다. 제네릭의 사용ArrayList lis..

벌써 5월이 지나가고 5월 회고를 적게 되는 날이 왔다.그동안은 주차 회고만 적어 봤는데 이번엔 5월 총 회고라고 보면 된다. 😎 : 회고 써라😐 : 싫어😎 : yum -y install 회고 써라😂 : ㅇㅋ 내 얘기잖아...? ※ 1개월동안 배운 기술들 간단하게 정리 일단,,, 5월엔 너무 많은 일들이 있었다. 한 달이 너무 빠르게 지나갈 정도였다.리눅스 기초에 대해서 배웠고, 클러스터 구성 방법에 대해서 배웠다. 다양한 SQL문들을 활용할 수 있게 되었고, 프로젝트 때 활용 했다...! 나중 가면 JOIN을 3번이나 사용 했는데하면서도 우와,,, 이렇게 해야 되나. 싶더라. 깃 활용법에 대해서도 배웠고, 팀원들과 지켜야 하는 규칙들이나 이슈, 프로젝트 관리에 대해서 배웠다.나름 예쁘게 ..