1️⃣ JDBC (Java Database Connectivity)JDBC : 자바 애플리케이션에서 데이터베이스와 연결하고 조작할 수 있도록 도와주는 API🔔 JDBC의 역할데이터베이스 연결 : 다양한 데이터베이스(MySQL, Oracle, PostgreSQL 등)와 연결 가능SQL 실행 : 데이터 삽입, 조회, 수정, 삭제 등 SQL 문장을 실행트랜잭션 처리 : 데이터 무결성을 유지하기 위한 트랜잭션 관리플랫폼 독립성 제공 : JDBC 드라이버를 통해 다양한 DBMS를 동일한 코드로 제어 가능💻 동작 원리JDBC 드라이버 로딩 (Class.forName("com.mysql.cj.jdbc.Driver");)데이터베이스 연결 (DriverManager.getConnection(url, user, pas..

Java의 메모리 구조는 크게 5가지로 나뉜다.1️⃣ 메서드(Method) 영역 (또는 클래스 영역)JVM이 클래스 정보를 저장하는 공간모든 스레드가 공유하는 공간이며 클래스 로딩 시에 초기화된다.클래스 로더(Class Loader)에 의해 로드된 클래스의 메타데이터가 저장되며 특히 static 변수, final 상수, 메서드 코드, 인터페이스 정보가 저장된다. 2️⃣ 힙 영역 (Heap Area)JVM의 GC(Garbage Collection)이 관리하는 영역이며 모든 스레드가 공유한다.객체가 생성되는 공간이며 모든 객체와 배열이 저장된다. 3️⃣ 스택 영역 (Stack Area)메소드 호출 시 생성되는 프레임이 저장된다.프레임에는 지역 변수, 매개변수, 리턴 값, 스레드 정보 등이 포함된다.메소드가..
🎯 객체 지향 프로그래밍(OOP)객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어를 객체 단위로 구성하고, 객체 간의 관계를 정의하여 프로그래밍하는 방식으로, 유지보수성과 확장성을 높이고 코드를 더 직관적이고 재사용 가능하게 만든다. 클래스 : 객체를 생성하기 위한 틀(설계도)객체: 클래스에서 생성된 실체(Instance)로, 메모리에 할당되어 실제 동작하는 단위 클래스객체정의객체를 만들기 위한 틀클래스에서 생성된 실체메모리메모리에 할당되지 않음메모리에 할당됨역할속성과 동작을 정의속성과 동작을 실제로 가짐예제Car 클래스myCar = new Car("Hyundai", 100); 그리고 객체와 클래스는 다음과 같은 관계를 만족한다. 클래스를 먼저 정의한 후 객..
🎨 컬렉션 프레임워크컬렉션 프레임워크는 데이터를 저장하고 조작하는 표준화된 아키텍처를 제공한다.자바의 배열(Array)은 크기가 고정되어 있지만 컬렉션을 사용하면 동적으로 크기를 변경할 수 있다.또한 다양한 기능(삽입, 삭제, 검색 등)도 가능하다. 주요 인터페이스는 다음과 같다.인터페이스특징구현 클래스List순서가 있으며 중복을 허용ArrayList, LinkedList, VectorSet순서가 없으며 중복을 허용하지 않음HashSet, TreeSet, LinkedHashSetQueueFIFO(First-In-First-Out) 방식LinkedList, PriorityQueue, ArrayDequeMap키-값(Key-Value) 쌍으로 저장, 키는 중복 불가HashMap, TreeMap, Linked..

1. 취업특강 📈월요일에 취업특강 및 기업설명회가 진행되었다.취업컨설턴트이신 류채윤 강사님께서 직무면접 준비방향과 답변에 대해 강의해주셨는데 면접관들에게 어필할 수 있는 구체적인 답변 예시를 보여주신 부분이 좋았다.마지막에는 모의면접 실습도 진행했는데 면접관의 입장을 간접적으로 경험해보며 과거에 면접을 봤던 나에게 어떤 면이 부족했었는지를 깨닫고 되돌아볼 수 있었다.나같아도 나를 안뽑았겠다 싶은 생각도 들었다. 😂면접에 있어 답변 내용도 중요하지만 그보다 비언어적인 요소가 더 중요하다는 것을 느꼈고 평소에도 자주 거울보며 면접 연습을 해봐야겠다고 생각했다. 2. 기업설명회 및 모의면접 👨💼취업특강이 끝나고 티맥스 소프트와 아이티센 그룹의 기업설명회가 있었다.이후에는 아이티센 그룹의 모의면접도..

1. 프로젝트 발표회 🙌 목요일에 프로젝트 발표회가 진행되었다! 그동안 열심히한 프로젝트 결과를 다른 반 교육생들과 강사님, 심사위원분들께 공개하는 날이라 아침부터 약간의 긴장감이 느껴졌다. 긴장한 교육생들을 위해 우리FISA 운영진분들이 과일과 샌드위치를 준비해주셔서 배를 든든히 채우고 발표회를 들을 수 있었다.🤗 먼저 클라우드 엔지니어링반과 AI 엔지니어링반 교육생들의 발표가 진행되었다. 두 반 모두 엔지니어링반이라 그런지 확실히 서비스 소개보다는 인프라 구성이나 데이터 전처리, AI 모델 등 기술적인 설명이 많다고 느껴졌다. 그러다보니 심사위원분들의 심사평에서도 기술적인 부분에 대한 칭찬들이 많이 나왔다. 클라우드 서비스 개발반 발표 때는 뼈를 부러뜨릴만큼의 날카로운 심사평..

1. 프로젝트 7주차 회고 (서비스 개선) 🧐 이번 주에는 다른 교육생들에게 우리 서비스를 실제로 사용하게 한 후 피드백을 받는 일종의 베타테스트 시간이 있었다. 사용자 피드백을 통해 개발자의 입장에서 생각하지 못한 서비스의 허점이나 불편사항을 찾기 위함이었고 크게 2가지를 개선했다. 1. 결제 시스템💻 기존의 우리 서비스는 판매자가 판매글을 올리면 채팅 없이도 구매자가 바로 결제할 수 있고 해당 상품은 바로 예약중으로 바뀌어 다른 구매자가 구매할 수 없게 해놨다. 그런데 우리 서비스를 사용해보던 한 친구가 구매자와 어떤 합의도 없이 내 물품이 판매되는 부분을 개선했으면 좋겠다는 피드백을 주었다. 팀원들과 이 부분에 대해 상의할 때 어짜피 물품을 판매하기 위해 올린 것이니 누군가가 구..

1. 프로젝트 6주차 회고 (배포) 🧐 이번 주에 웬만한 기능 개발과 로깅, 테스트코드 작성까지 마쳤다. 가비아에서 도메인을 구입해 route53에 등록하고 로드밸런스로 https 연결도 해주었다. 그리고 AWS EC2에 연결하여 배포 서버에서 기능들이 잘 동작하는지 점검하는 한 주를 보냈다. 그런데 로컬에서는 잘 돌아갔던 기능들이 배포 환경에서는 동작하지 않는 문제들이 있었다. 코드 자체에는 문제가 없지만 이를 빌드하고 배포하는 과정에서 뭔가 꼬이는 것들이 있는 듯 했다. 웹서버로 nginx를 사용하는데 이 nginx의 config파일에 추가적으로 설정해야 하는 것들이 꽤 있어 그 부분에서 시간이 많이 소요됐다. 원래는 초반에 EC2 세팅을 다 해놓고 기능 개발할 때 배포 환경에서도..