[Java] 클래스와 객체의 정의
·
Java
(1) 클래스와 객체 붕어빵틀? 붕어빵?클래스와 객체를 설명할 때 붕어빵틀과 붕어빵으로 주로 예시를 든다. 해당 예시는 솔직히 처음 배우는 입장에서는 전혀 예시를 통해 이해를 하기가 쉽지는 않을 것이다. 예시를 든 이해보다는 정확한 이해를 하기 위해 여기서 예시는 생략한다. (2) 클래스와 객체란?클래스란?자바 언어를 활용해 코드를 작성하다 보면, 해당 코드를 작성할 파일이 필요하다. 해당 파일 내부에 class 키워드가 붙으면 해당 파일은 자바 소스코드를 작성할 수 있는 클래스 파일이 된다. 이것이 클래스이다. 객체란?자바에서는 new 키워드를 이용해 객체를 생성할 수 있다. 런타임에 하나의 클래스를 가지고 동일한 객체들을 여럿 생성할 수 있게 된다. 즉, 객체는 클래스의 정보를 토대로 동적으로 만들어..
KH정보교육원(종로) 국비 자바 개발자 과정 수료 후기
·
잡담
( 이 글은 개인적인 생각이라 다 맞는건 아니라고 생각합니다. 그냥 참고만 하셨으면 좋겠습니다! ) 국비 과정 수료 후기를 남기도록 하겠습니다.일단 후기에 앞서 저는 23년도 1월부터 6월까지 총 6개월 가량 수업을 들었고, 과정에서 세미프로젝트 및 파이널프로젝트 이렇게 총 2개를 진행했습니다. 당시 저의 나이는 23살 고졸이라 비전공자로 지식이 없던 상태로 수업을 진행하게 되었습니다. 참고로 저는 현재는 국비 학원(KH) 1곳과 국비 캠프 1곳 총 2곳을 다닌 상태입니다! 1. KH정보교육원을 다니게 된 이유일단 처음 알아 볼 당시 국비 학원으로 유명한 학원인 비트캠프, 쌍용교육센터, KH정보교육원 이렇게 세개가 유명하다는 걸 알게되었고, 각각 리뷰를 확인해보니 쌍용은 비전공자가 들어가기 좀 어렵다는 ..
EduWithMe-Project
·
내일배움캠프 Spring 5기
프로젝트 목차1. 프로젝트 개요2. 담당 역할3. 트러블 슈팅4. API 명세서5. ERD6. 아키텍처 설계1. 프로젝트 개요프로젝트 정보● 프로젝트 명 : EduWithMe● 인원 : 4명● 작업 기간 : 총 28일 ( 2024.07.20 ~ 2024.08.20 )● Project / Git-Hub : https://github.com/five-star-school/eduWithMe-backend 서비스 설명모든 연령과 배경의 사용자들이 언제 어디서나 접근할 수 있는 개인 맞춤형 학습을 통해 성장하며, 선생님과 학생 간의상호작용을 강화하고 학습 동기를 높이는 교육 플랫폼입니다.2. 담당 역할[1] 실시간 채팅 기능1. 실시간 채팅 기능 구현 목적실시간 사용자 상호작용 필요성:- 사용자들이 실시간으로 문..
내일배움캠프 66일차 TIL - 최종 프로젝트( D-2 )
·
카테고리 없음
2024.07.19🔥오늘의 공부🔥    ●  1. 최종 프로젝트 ( D-2 ) 최종 프로젝트에 대한 마음가짐 및 목표드디어 최종 프로젝트 단계에 들게 되었습니다. 기존에는 리더를 한번도 안해봤지만 마지막인 만큼 제대로 해보자는 생각에 리더를 신청하여 팀의 리더가 되었습니다. 리더라는 무게감을 느끼고 팀원 누구보다 열심히 해야하겠다는 마음가짐으로 프로젝트에 임할 생각이며, 팀으로써 프로젝트를 무사히 마치는 것이 목표이며, 개인적으로써는 다양한 기술들을 접함으로써 많은 실력 향상이 목표입니다. 🎇프로젝트 기획🎇     ●  팀명 : 5성 스쿨     ●  프로젝트 명 : EduWithMe     ●  주제 : 교육  웹 사이트     ●  소개 : 방을 만든 관리자가 문제를 출제하여 방에 입장한 일반..
내일배움캠프 62일차 TIL - JPA(CascadeType, OrphanRemoval)
·
내일배움캠프 Spring 5기
2024.07.15🔥오늘의 공부🔥    ●  1. CascadeType    ●  2. orphanRemoval Entity간 관계를 정의할 때 사용될 수 있는 설정 1. CascadeType ( 영속성 전이 )Entity 클래스 중 @OneToMany인 1에 해당하는 부모클래스에게 줄 수 있는 옵션으로, 해당 옵션은 연관 관계가 맺어져 있는 자식 엔티티에 부모 엔티티의 영속성 상태를 전이를 시켜주는 옵션이다. 해당 옵션을 사용하면, 아래 해당 이미지에서는 REMOVE 옵션을 사용하고 있지만, 저장, 병합, ALL 등 다양한 옵션이 있지만 여기서는 REMOVE만을 다루겠다.아래 옵션을 사용하게 되면 부모 엔티티가 삭제 될 때, 자식 엔티티도 같이 삭제를 도와준다. 즉, 영속성을 전이 시켜준다. 2. ..
내일배움캠프 61일차 TIL - 쿼리 최적화
·
내일배움캠프 Spring 5기
2024.07.12🔥오늘의 공부🔥    ●  1. ㅇㅇㅇㅇ  최적화주어진 자원(시간, 하드웨어 등)과 같은 제약조건 내에서 최선의 결과(속도 향상, 비용 감소 등)을 도출하기 위해 전체 시스템 또는 코드 구조를 재설계하거나 개선하는 과정을 최적화라고 칭한며, 특정 부분의 성능을 개선하여 전체 성능을 향상하는 것을 목표로 한다. 정리하면 최소한의 자원을 이용해 성능을 향상 시킨다는 것을 최적화라고 칭한다. 최적화 전략1. 성능 측정 : 최적화 전후의 성능을 객관적으로 측정하고 비교합니다.2. 점진적 적용 : 한 번에 많은 변경을 하기보다는 단계적으로 최적화를 진행합니다.3. 모니터링 : 최적화 후 시스템의 전반적인 성능과 안정성을 지속적으로 모니터링 합니다.4. trade-off 고려 : 성능 향상과 ..
내일배움캠프 60일차 TIL - Security 예외처리
·
내일배움캠프 Spring 5기
2024.07.11🔥오늘의 공부🔥    ●  1. Security 인증에 대한 예외처리    ●  2. AuthenticationFailureHandler ( 로그인 실패 예외 처리 )    ●  3. AuthenticationEntryPoint ( 로그인 인증에 대한 리소스 접근 예외 처리 ) AuthenticationFailureHandlerSpring Security에서 인증에 실패 시 호출되어 처리할 작업을 정의하는 인터페이스입니다. 주로 로그인 시도가 실패한 경우에 호출이되며, 클라이언트에게 적절한 응답을 전송하는 등 여러가지 추가적인 작업을 수행 할 수 있다.@Slf4j(topic = "FailureHandler[로그인 인증 실패 예외]")@Componentpublic class Failu..
내일배움캠프 59일차 TIL - 심화 프로젝트 설계
·
내일배움캠프 Spring 5기
2024.07.10🔥오늘의 공부🔥    ●  1. 심화 프로젝트 설계  프로젝트명 : 2step프로젝트 설명팀의 업무를 시각화한 프로젝트 관리 프로그램으로써 KanbanBoard의 대표적인 사이트인 "Trello" 웹사이트를 모티브로 설계하게 된 프로젝트이다.구조는 위의 이미지와 같이 보드형식에 하나의 컬럼 내부엔 여러개의 카드가 존재할 수 있으며, 보드는 하나의 프로젝트 단위, 컬럼은 해당 카드들이 들어가는 곳의 상태를 나타내주고, 카드는 기본적인 기능 구현 및 업무에 대한 내용을 넣어 주게된다. 업무 상태의 따라 카드의 위치를 컬럼 단위로 변경이 가능하다.  와이어 프레임1. 로그인 된 사용자는 여러개의 보드를 만들 수 있다.2. 보드를 생성한 사용자는 해당 보드에 대해 Manager 권한을 가진..
내일배움캠프 58일차 TIL - Redis
·
내일배움캠프 Spring 5기
2024.07.09🔥오늘의 공부🔥    ●  1.  캐시가 무엇인지 알아보자Redis를 간단히 알아보자 Redis(Remote Dictionary Server)비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 NoSQL이며, 인메모리 데이터 구조를 가지고 Key-Value형태로 데이터를 저장을 해주고 DB, Cache등 다양한 용도로 사용이 가능한 오픈 소스 인메모리 데이터베이스이다. 특징1 ) 인메모리 데이터 저장소이며 메모리에 데이터를 저장하고 불러오기 때문에 매우 빠른 데이터 읽기 및 쓰기가 가능하다.2 ) 인메모리 방식이라 디스크 기반 데이터베이스보다 훨씬 빠른 성능을 보장해준다.3 ) Dictionary로써 고성능 Key-Value 구조의 저장소이다.4 ) 대용량 트래픽을 처리해야 하..
내일배움캠프 57일차 TIL - Docker(1)
·
내일배움캠프 Spring 5기
2024.07.08학습    ●  1. Pagination 사용 방법과 사용 이유 CI/CDContinuous Integration/Continuous Deployment(Delivery)의 약자로, 지속적인 통합과 지속적인 제공을 의미지속적인 통합, 지속적인 서비스 제공, 지속적인 배포 지속적인 통합( Continuous Integration )코드의 지속적인 통합자동화된 빌드와 자동화된 테스트를 제공안정적인 코드를 빠르게 제공할 수 있는 밑거름이 된다.// 브랜치별로 merge하는 과정을 ci라함. 지속적인 배포( Continuous Deployment )소스 변경분을 빠르게 테스트하고, 자동화된 테스트를 진행하며 자동으로 운영환경까지 배포하는 시스템을 의미한다.배포를 자동화하여 배포 시간을 단축하고..