백엔드 부트캠프 13기: Java | 현황과 day6 회고
AI스타트업에서 원하면서 원하지 않았던 권고사직을 (당)하게 되었습니다. 여태 많은 스타트업들의 힘든 상황이 지속되었고, 2023년 3월 회사 인원의 절반을 감축하게 되었습니다. 그로부터 약 1년 6개월이 지난 지금 제 차례가 왔고, 미련 없이 떠났습니다.
미련 없이 떠날 수 있었던 것은 AI스타트업에서 콘텐츠 기획 업무를 맡아왔지만, 서비스 출시도 못해온 것에 대한 기획들이기에 실질적으로 기여도가 부족했다는 생각을 가져왔기 때문입니다. 그리고 계획해 왔던 개발 관련 부트캠프를 알아보기 시작했습니다. 갑자기 왜 개발자를 하느냐.. 회사 생활하면서 개발자 분들과 소통을 자주 할 수 있는 기회가 가지며 관심을 갖기도 했고, 주변에서 혼자 일하는 것을 좋아하고 논리적인 것을 선호하는 제 성격과 잘 맞을 것이라는 얘기를 많이 들은 영향도 있었습니다. 특히 논리, 구조 등을 좋아하는 저는 고민 끝에 백엔드 Java를 공부하기로 마음먹었습니다.
멋쟁이사자처럼 백엔드 Java과정을 시작한 지 3주가량 되었으며, 비전공자/노베이스로 분류되는 저는 회고하는 것도 벅찰 만큼 많은 시간을 Java에 투자하고 있습니다. 극도의 스트레스를 겪기도 하고, 어떤 날은 시간 가는 줄 모르고 즐겁게 코딩을 하는 시간을 가지는 등 아직 거친 신고식을 거치고 있습니다. 더 자세한 후기는 다음 회고를 통해 조금씩 풀어가려고 합니다.
void와 같은 리턴타입을 넣는 순간 생성자가 아닌 메서드로 인식
this → 인스턴스를 가리키는 예약어
this() → 자신의 생성자를 의미. 다른 생성자를 호출하는 것
명시적으로 생성자를 정의하지 않으면 컴파일러는 디폴트 생성자를 자동으로 추가한다.
Getter: 필드의 값을 반환, 주로 get필드명으로 메서드 이름 생성
Setter: 필드의 값을 설정하는 메서드, set필드명으로 메서드 이름 생성
부모타입으로 자식을 가리키는 것은 전혀 이상하지 않다.
자식타입으로 부모를 가리키면 이상할 수 있다.
Object는 모든 객체의 조상이다.
필드는 타입을 따른다.
부모는 물려준 것까지만 기억
메서드는 오버라이딩 되면 타입에 상관없이 무조건 자식 것을 쓴다.
super → 부모를 가리키는 키워드
super. 필드 / super. 메서드 / super() - 부모의 생성자의미
부모의 생성자를 넣지 않으면 자식에(extends) super()(부모의 디폴트 생성자)가 추가되어 있는 것
부모에 생성자가 있다면 super()를 통해 값을 추가해야 한다.
오버라이딩
부모 클래스에서 상속받은 메서드를 자식 클래스에서 재정의 하는 것
상속 관계에서만 발생, 부모 클래스의 메서드를 자식 클래스에서 변경하여 사용할 수 있음
어노테이션(@Override)을 사용하면 유지보수가 쉬워짐
오버로딩
같은 이름의 메서드를 매개변수의 개수나 타입을 다르게 하여 여러 번 정의하는 것.
한 클래스 내에서 이뤄지며, 상속과 관계없음
업캐스팅
자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것(자식 클래스를 부모 클래스로 변환)
자동으로 이루어지며, 별도의 형 변환 코드가 필요 없음
다운캐스팅
부모클래스 타입으로 참조된 객체를 다시 자시 자식 클래스 타입으로 변환하는 것(부모 클래스를 자식 클래스로 변환) 명시적 형 변환이 필요하며, 안정성을 위해 instanceof로 확인해야 함.
첫 회고는 굉장히 망설여졌다. 모든 기록을 노션에 하는 습관이 생겨 그 내용들을 브런치에 옮기는 작업이 쉽지 않기도 하다. 정말 오랜만에 공개적인 글을 작성하며 그 사이 많은 일을 담을 수는 없지만, 결국 또 새로운 시작을 보여줄 수 있는 것은 참 좋은 일이다. 그 시작인 부트캠프와 추가학습을 계속하며 공부하는 즐거움과 스트레스, 울분 등을 조금씩 나눠서 표출해야겠다. 이게 좋은 시작일지도.
#멋쟁이사자처럼#부트캠프#백엔드부트캠프#Java