한화시스템 BEYOND SW 캠프 19기 - 4주차 회고

후라이드·2025년 8월 10일

회고록

목록 보기
5/28
post-thumbnail

✨BEYOND SW 캠프 19기 4주차 회고

더위가 살짝?은 꺾여 아침 저녁은 제법 선선했던 4주차는 기반기술 프로젝트 발표와,

본격적인 Back-end 프로젝트를 위한 첫걸음으로 Java 를 배우기 시작했다.

나는 학교 다닐 때 Java를 전공수업으로 들은 적이 없이, 친구들과 쌩 프로젝트를

하면서 그때 그때 공부를 했던지라, Java에 대한 기본 개념이 좀 약했었는데,

마침 제대로 기초부터 배울 기회가 오게 되어 열심히 해야겠다고 다짐했다.

📕 새롭게 얻은 지식

향상된 for문 (for-each)

기존의 for문초기식, 조건식, 증감식을 직접 작성해야 하고, 배열이나 컬렉션의 인덱스를

다루면서 순회하는 방식이었다. 하지만 for-each문은 인덱스 없이도 배열이나 컬렉션의 모든

요소를 처음부터 끝까지 순회할 수 있어서 코드가 훨씬 간결해진다.

// 기존 for문
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

// 향상된 for문
for (int num : arr) {
    System.out.println(num);
}

하지만, for-each문은 배열의 일부 구간만 순회, 역순으로 순회하는 작업에는 적합하지 않다.

정리하자면, 단순 조회 → for-each문 / 세밀한 제어 → 기존 for문 으로 생각할 수 있다.

클래스 / 객체 / 인스턴스

객체지향 프로그래밍을 들으면서 정말 많은 용어들이 나왔는데, 그 중에서도 가장 기초가

되는 클래스, 객체, 인스턴스 개념을 배우면서 참 헷갈렸었는데, 비유를 하면서 개념을

공부하니 이해가 제법 쉬워졌다.

  • 클래스(Class) : 설계도 자동차 라는 제품을 만든다고 했을 때, 자동차의 설계도가 바로 클래스다. 어떤 부품이 들어가고, 어떤 기능(메서드)을 가질지 미리 정의하는 청사진 같은 존재다. 아직 실체는 없고, 그저 어떻게 만들 것인지 계획만 가진 것이다.
  • 객체(Object) : 완성된 자동차 설계도를 바탕으로 실제로 만들어진 자동차가 즉, 객체이다. 설계도만 있을 때는 탑승 및 운전이 불가능하지만, 완성된 자동차는 실제로 도로에서 주행을 할 수 있다. 즉, 프로그램에서 동작할 수 있는 구체적은 형태가 바로 객체이다.
  • 인스턴스(Instance) : 특정 브랜드/모델의 자동차 객체와 인스턴스는 비슷하게 쓰이지만, 인스턴스는 특정 클래스에서 생성된 객체라는 의미에 초점을 맞춘다. 예를 들어 자동차 클래스에서 현대 아반떼, 기아 k5 같은 실제 제품이 만들어졌다면, 이것들이 바로 해당 클래스의 인스턴스이다.

객체 지향 프로그래밍 (OOP, Object Oriented Programming)

객체 지향 프로그래밍을 배우면서 Java라는 언어가 객체 지향 언어 라고 불리는

이유를 알 수 있게 되었다. Java는 모든 기능과 구조가 객체를 중심으로 설계되어

있기 때문에, OOP 개념을 이해하는 것은 Java의 기초를 다지는 것과 마찬가지였다.

  • 캡슐화(Encapsulation) 캡슐화는 말 그대로 알약처럼 속을 감싸는 것 과 비슷하다. 클래스 내부의 변수와 메서드를 하나로 묶고, 외부에서 함부로 접근하지 못하게 접근제어자를 사용하여 보호한다. 이렇게 하면 객체의 내부 상태를 안전하게 유지할 수 있고, 잘못된 데이터의 변경을 막을 수 있다.
  • 추상화(Abstraction) 추상화는 복잡한 내용을 숨기고 꼭 필요한 부분만 보여주는 개념이다. 예를 들어, 자동차를 운전할 때 우리는 엔진의 구조나 브레이크 작동 원리는 몰라도 된다. 운전자는 핸들, 패달, 기어 같은 필수 조작 방법만 알면 된다. 프로그래밍에서도 마찬가지로, 객체가 제공해야할 필수 기능을 정의하고, 세부 구현은 감추어 코드를 단순하고 명확하게 유지하게 도와준다.
  • 다형성(Polymorphism) 다형성은 같은 이름의 메서드나 객체가 상황에 따라 다르게 동작하는 것 을 말한다. 예를 들어, ‘운전하다’ 라는 행위는 승용차, 버스, 트럭에서 모두 쓰일 수 있지만, 실제 동작 방식은 각자 다르다. 프로그래밍에서도 같은 메서드 이름을 사용하더라도, 매개변수의 종류, 순서 등 구현 방식에 따라 다른 결과를 낼 수 있게 해준다. 이를 통해 코드 재사용성과 확장성을 높일 수 있다.

아직 상속에 대해서는 제대로 배우지 못 했지만 나머지 3개의 개념만으로도 OOP의

장점 및 강점을 알 수 있었다.

  • 재사용성 향상
  • 유지보수 용이함
  • 확장성이 뛰어남

🏆 좋았던 점

Java 기초부터 다지기

대학교 시절 전공으로 Java를 체계적으로 배우지 못한 채 상황에 맞춰

그때 그때 배운 내용으로 Java를 써왔던 나에게, 이번 강의는 정말 값진 시간이였다.

변수, 연산자, 제어문 같은 기초 문법부터 클래스와 객체, 객체지향 프로그래밍의

핵심 개념까지 하나하나 차근히 배워가면서 Java와 조금 더 친해질 수 있었다.

그동안은 인터넷에 올라와 있는 예제를 필요할 때마다 검색하면서 단편적으로만

사용해왔는데, 이번에는 체계적으로 기초를 다질 수 있어서, 앞으로 있을 더 복잡한

개념들을 배우고 기능을 구현할 때 좀 더 자신감 있는 채로 작업할 수 있을 것 같다.

📋 아쉬운 점

컨디션 관리

이번주 내내 아침에도 졸았고… 점심 먹고 와서도 졸았던 것 같다…

커피를 마시는데 수업시간에는 안깨는데, 밤에는 정신이 멀쩡해진다…. 😵‍💫

선 책상에 나가서 수업을 듣기는 하는데 2교시 정도 서서 들으면 발이 너무 아프다…

아무튼..계속 졸다보니 수업 내용도 조금씩 놓치고 그러는게 아쉽다…

그리고 계속 마신 커피 때문에 밤에 잠을 거의 못자고 온 날도 있어서

커피는 아침에만 먹고, 점심 이후에는 안먹는걸로 다짐했다. 🥱

📌 앞으로의 목표

다가온 정보처리 기사 필기

이번주 목요일 아침에 정보처리 기사 필기가 있어 지난 한주는 남는시간에

정치기 필기 CBT를 조금씩 풀기 시작했다. 남은 시간도 열심히 준비해서

필기만큼은 확실히 합격할 수 있으면 좋겠다…..

SQLD 및 PCSQL

이번 주 정처기 필기를 보고 난 이후엔 23일 SQLD 가 있으니 마음 준비를

하던 차 학원에서 PCSQL 이라는 시험을 SQLD 25일에 볼 수 있게 공지를

해줘서 바로 신청했다. 어차피 같은 내용을 공부해야 하니 1석2조로

내 실력을 확인할 수 있을 것 같다.

profile
라이언을 좋아하는 초보 개발자의 보금자리

0개의 댓글