1. 기계공학과 졸업하고 개발자로 전향하게 된 계기
저는 현재 나이 만 25살로 평범한 기계과 졸업예정인 학생 임정민이라고 합니다.🎓
본래 학교 졸업 후 협동 로봇 필드 엔지니어 준비했었는데요.🧐
위 사진처럼 서비스 로봇을 활용해서 FnB 분야 (카페 ,치킨 등)와 융합하여 자동화하는 필드 엔지니어에요! 제가 학부생시절 목표하던 제일 낭만있는 직업이였죠.
2022년 상반기 6개월 동안 타대학 광운대학교에서 로봇 프로젝트 하면서 로봇도 많이 만져보고 직접 티칭/프로그래밍 하는 경험 쌓으면서 처음으로 C#, 파이썬 코딩 공부 해본 것 같아요.💻
조별 프로젝트 하면서 개발에 관심이 많던 조원분이 Queue 자료구조 활용해서 로봇으로 들어오는 주문을 선입선출 방식으로 해결해 나가더군요. 그 몇줄짜리 코드 이해하면서 딱 느낌이 왔습니다❗
개발자가 되기로 결심한 뒤 고민끝에 현재 제가 목표한 구체적인 분야/직무는 디지털 휴먼 백엔드 엔지니어입니다. 이에 관한 자세한 이야기는 차차 풀어나가도록 하도록 하겠습니다.
2. Java 기초 다지기
백엔드 개발자는 주로 Java, Python, Node.js 와 같은 언어들을 사용한다고 합니다.
저는 먼저 난이도도 쉽고 인터넷 상에 예제가 많아 접근성이 용이한 Spirng 웹개발 목표로 Java 기초부터 시작했습니다.🧐
Java는 C#과 문법이 유사하기 때문에 어느정도 친숙함은 있지만 짚고 넘어가야할 기초적인 개념들이 있더라구요.
1) 형변환 (Promotion vs Casting)
public class Day1 {
int var; // 변수 선언시 메모리 할당
// 할당된 공간에 var이라는 이름을 붙힘
// 멤버변수임 (클래스 멤버 변수임)
// 자동으로 초기화됌
public static void main(String[] args) {
int num = 3; // 변수의 선언과 초기화 동시에 이루어짐
// 지역변수임
float fpi = 3.14f;
double pi = fpi;
float dpi = (float) pi; // 소실이 없는 자동형변환 = 프로모션(promotion)
// 더 작은 자료형의 변수에 저장하면 자료의 손실 -> 자동형변환 허용 (X)
// (자료형)값 -> 캐스팅(Casting)
System.out.println(dpi);
long lenth = 10; // promotion
//int length2 = 10L; // 앞에껄 날려버린다. 손실: 1. 부호손실 2. 데이터손실 => (오버플로우)
// 3. 정밀도 손실(실수의 지수부+가수부)
// byte b = 225 ;
byte c = 127; // 127 4byte짜리 int형, byte형 범위안에 들기때문에 형변환 허용 (promotion)
short s = 32767; // -
int a = 10;
int b = ++a; // 1. a 복사본 생성하고 ++ 후 저장 2. a값을 b에 저장 3. a 복사본을 a에 저장
int d = a++; // 1. a 값을 복사본 생성 2. d에 a 복사본 넣음 3. a 복사본에 ++ 후 a에 저장
System.out.println(a);
System.out.println(b);
System.out.println(d);
//
short s1 = 10; // short는 2 byte, 00001010 저장
//byte b1 = s1; // 불가능 -> s가 short라는 것은 알지만 10인것은 모름
// byte 1byte , short 2 byte
byte b2 = 10; // 1010 저장
short s2 = b2; // 가능 00001010
// 데이터 손실 없는 자동형변환 = promotion
byte b1 = (byte)s1; // Casting 연산자, 프로그래머가 책임짐
}
결과
num =300
3.14
12
11
11
2) 자바 소스파일, 식별자, 예약어
// 자바 어플리케이션은 자바 클래스들로 구성된다.
// 클래스 작성법. 소스코드는 확장자가 .java 이다
// 자바 소스파일에는 하나 이상의 클래스가 정의된다.
// 자바 소스파일 내의 클래스 명의 자바소스파일명과 동일해야한다.
/* */
// Source -> Toggle comment 선택 주석처리 가능
// 식별자(identifier): 요소를 구분할 수 있는 이름. ex) 패키지명, 클래스명, 파일명, 함수(메서드), 변수명
// 예약어(keywords): public, package, class, void, static, int, double ...
// double (8byte) , float (4byte)
// char '' , string ""
// 1byte = 8 bit
3. 마치며...
오늘 처음으로 개발 블로그 작성해봤습니다!!💐
나름 깔끔하게 정리하려고 Velog내의 기능들 좀 찾아봤는데 아직 조금 서툰것같네요.🐷
개발공부 할 때는 혼자하는 것보다 같은 목적으로 작성한 코드를 서로 바꾸어가며 리뷰하는게 실력 향상하는데 가장 좋은 방법이라고 합니다. 앞으로도 공부한 내용 자주 올릴테니 같이 스터디하시는 분들 서로 교류하는 공간이 되었으면 합니다.
오늘도 화이팅하시고 앞으로 잘지내봅시당📢
댓글은 안 썼지만 슬랙에 좋아요는 제가 제일 먼저 눌렀습니다 ㅋㅋㅋ