본문 바로가기

전체 글

(14)
SECTION4 KPT 회고 돌아보면서 드디어 지옥 같았던 SECTION 4 가 끝났다. SECTION 4 전에는 SECTION2-3 가 고비 일 줄 알았는데, SECTION 4 는 another level이다. 공부하다가 반 포기하고 그냥 학습자료 읽고 따라치고 구현 하라는 대로 구현한게 끝이다.다시 읽어봐도 무슨 얘기인지 잘 모르겠다. 읽으면 읽을 수록 더 헷갈리고 어려워진다. 😒 섹션4 마지막 과제는 솔로 프로젝트였다. 솔로 프로젝트 시작하자마자 다들 바쁘게 단톡방에 채팅을 남겼고 아고라스테이츠에도 질문이 올라오기 시작했다. 너무 부러웠다. 그 분들은 뭘 했기 때문에 질문을 하겠지? 나는 시작조차도 못했었는데..... 솔루션 코드 받아도 나한테는 소용이 없다 ㅎㅎ 단계별로 다시 이해해야 하기 때문에 ㅎㅎ 마음은 계속 초조해지고..
[자바 JAVA] 자료 구조 (Stack, Queue, Tree, Graph) TODAY I LEARNED: 1. 자료 구조가 무엇인가 2. Stack 3. Queue 4. Tree 5. Graph 1. 자료 구조가 무엇이고 왜 사용하나? 수많은 데이터를 효적으로 저장하고 관리하기 위한 구조를 의미한다. 즉 데이터를 더 빠르고 효율적으로 처리 할 수 있다. 데이터 구조는 일반적으로 Array, List, Stack, Queue, Hashtable, Set, Map, Tree, Graph 등의 구조를 가질 수 있다. 데이터를 처리하는 방식에 따라 프로그램 성능과 효율성에 영향이 가기 때문에 적절한 자료 구조를 사용이 매우 중요하다. Array, List, Set, Map 등 관련해서는 아래 링크 참고: https://midiariodecodificacion.tistory.com/en..
[자바 JAVA] 객채지향 - 클래스(Class) 와 객체(Object) ** 학습 자료 개인 학습용으로 작성한 내용이니 정확하지 않을 수 있음 ** TODAY I LEARNED: 1. 객체지향 프로그램이 무엇이며 2. 클래스와 객채 3. 필드와 메서드 (Static 변수와 Instance 변수, 메서드 오버라이딩) 4. 생성자 (this vs this() 5. 내부 클래스 (내부, 멤버, 지역내부 클래스) 1. 객체 지향 프로그래밍(OOP, Object-Oriented Programming) 객체 지향 프로그래밍은 컴퓨터 언어의 하나이며 프로그래밍에 필요한 객체(object) 또는 데이터의 모임으로 추상화시켜 이릍 통해 프로그래밍을 하는 것임. 객체 지향 프로그래밍은 Java C++ C 파이썬 등에서 사용 됨. 영문 설명: OOP stands for Object-Orient..
[Spring Security] Spring Security 앱을 개발을 할때 또는 웹을 개발할 때 가장 중요한 것은 보안이다. 만약 실제로 카페의 고객용 애플리케이션을 개발했지만 보안을 고려 하지 않았다면 어떤 일이 발생할까? 1. 로그인 없이 모든 회원들이 회원을 검색, 추가, 제거 등을 할 수가 있다. 2. API 대한 권한 부여(인가, authorization): 위의 로그인의 문제와 같이 회원들이 커피 메뉴를 알아서 수정 할 수 있다. 3. 웹 보안이 취약: 세션, 클릭재킹 공격과 CSFR 등의 보안 취약점이 노출 되어 있다. 이런한 보안 관리 관련해서 Spring 에서는 Spring Security 라는 보안 프레임워크를 제공한다. Spring Security는 Spring MVC 기반 애플리케이션에 인증(Authentication)과 인가(Author..
Section3 KPT 회고 돌아보면서: 어느새 SECTION 3가 마무리가 되고 내일부터 SECTION 4 를 시작하게 된다. 이상하다, 아직 모르는 것이 더 많은데 어떻게 SECTION 4를 시작하지? SECTION3를 하면서 가장 힘들었던 것은 위와 같이 SECTION2를 거의 이해를 못했는데 SECTION3를 어떻게 해... 그래도 또 하게 되더라. 다시 읽고 조금 더 연습하고 하니깐 10%는 이해가 되더라. 남은 90%는 꾸준한 복습과 구글링 통해 채워나가야 할 나의 과제이다. 뿌듯했던 점: 그래도 SECTION3 를 하며서 가장 뿌듯했던 것은 페어 활동이었던 것 같다. 이전에 페어분들도 너무 좋았지만, 이번에 했던 모든 페어 분들은 약간 인간적인 냄새가 난다고 해야 되나? 그럼 이때까지 다른 페어분들은 인간적이지가 않았다..
[Spring MVC] 트랜잭션(Transaction), ACID 원칙, 커밋(commit), 롤백(rollback) ** 개인 학습용으로 작성한 내용이니 정확하지 않을 수 있음 ** 트랜잭션(Transaction)이란? 여러개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위이다. 예시: 1) 카페 고객이 주문 > 결제 완료 > 쿠폰 등록 완료까지 했는데 주문서가 데이터베이스 오류로 정상적으로 작동을 안 한다면 손님에게 금전적인 손해 2) 카페 고객 주문 > 결제 오류 > 쿠폰 등록 완료 된다면 카페가 손님한테 무료 쿠폰 주는 것으로 카페에게 손해 3) 카페 고객 주문 > 쿠폰 등록 > 커피 완료 까지 마쳤으나 데이터베이스 오류로 스탬프가 정상적으로 등록 안된 경우 고객에게 손해 예시 상황: 하나의 그룹으로 묶여 있는 작업이 완성이되지 않았다. 이러한 작업은 트랜잭션이라 부르지 못한다. 따라서 트랜잭션은 하나의 작..
[자바 JAVA] 재귀함수 (vs 반복문) 정의: 재귀 함수란 함수 내부에서 자기 자신을 호출하여 문제를 해결하는 함수를 말한다. 즉, 함수가 자신을 호출하여 작업을 수행하는 방식이다. 재귀 함수는 문제를 간결하고 직관적으로 해결할 수 있도록 도와준다. 피보나치 fibonacci 수열과 같은 수학적인 계산 문제나, 이진 탐색과 같은 데이터 검색 문제에서 재귀 함수를 사용한다. 재귀 vs 반복문 재귀 함수와 반복문은 모두 반복적인 작업을 수행하는 데 사용되는 구조이지만, 각각의 사용에는 차이가 있다. 재귀 함수: - 함수가 자기 자신을 호출해서 문제를 해결한다. - 코드가 간단하고 이해하기 쉽다. - 반복문으로 처리하기 어려운 문제들을 재귀 함수로 풀이 할 경우 코드가 간결해진다. - 단점: 호출 스택이 계속해서 쌓이기 때문에 스택 오버플로우, 메..
Section2 KPT 회고 목표를 상기하기 위한 질문 1. 현재 ‘내'가 학습을 통해 이루고자 하는 것은 무엇인가요? 남들과 비교하지 않고 자기만의 페이스대로 하나하나씩 처음부터 다시 완벽하게 이해하는 것. 2. 여러분이 현재 바라는 목표를 모두 이루었다면 ‘나'는 어떻게 변해 있을까요? 현재 자바에 대해서 큰 그림이나 주요 포인트를 못 잡겠지만, 차근차근 처음부터 다시 이해를 하면 전체적인 코드 흐름이나 주요 포인트가 보이고 코드 활용을 할 수 있을 것 같음. 3. 나'에게서 어떤 모습을 보았을 때, 목표를 이루었다고 말할 수 있을까요? 코드를 이해하고 있을때, 그 코드를 제대로 활용 할 수 있을때, 남에게 코드를 완벽히 설명할 수 있을때. Keep 작성을 위한 질문 1. 목표를 달성하기 위해 시도했던 것 중 가장 효과적이었던 ..
KPT 회고 KPT를 기반으로한 개인 회고 목표 상기하기 Keep, Problem 작성하기 Try 작성하기 우선순위 정하기 1. 목표 상기하기 목표를 상기하기 위한 질문 현재 ‘내'가 학습을 통해 이루고자 하는 것은 무엇인가요? 학습을 통해 백엔드 개발자로서 필요한 탄탄한 기초와 개발에 대한 이론과 지식을 배워 개발자로서 취업 성공하기. 자기주도 학습이라는 단어가 나와는 맞지 않는다는걸 이번에 느꼈지만, 지금처럼 최대한 자기 페이스데로 공부를 이어갈것. 남들보다 진도가 늦거나 이해력이 떨어져도 포기하지 않고 끝까지 하기. 여러분이 현재 바라는 목표를 모두 이루었다면 ‘나'는 어떻게 변해 있을까요? 개발자가 되어 있겠지? ‘나'에게서 어떤 모습을 보았을 때, 목표를 이루었다고 말할 수 있을까요? 해당 직무 관련 취업을..
[JAVA 기초] 변수, 상수, 리터럴, 타입(정수, 실수,논리,문자, String) ** 개인 학습용으로 작성한 내용이니 정확하지 않을 수 있음 ** 변수 Variable : 변할 수 있는 값을 저장할 수 있는 메모리 공간을 확보하고, 사람이 식별할 수 있는 이름을 붙여 값을 임시적으로 할당하는 것. 값은 "=" 대입 연산자로 할당 할 수 있음. 변수는 아래와 같이 재할당 할 수 있음. public class Variable { public static void main(String[] args) { int num;//변수선언 num = 1;// 값 할당 (초기화) num = 2;// 값 할당 (재힐당) System.out.println(num);// 결과 : 2 } } 변수명 규직: - camelCase 처럼 두번째 첫 글자를 대문자로 시작하여 구분함 - 영문자, 숫자, _, $를 사..