본문 바로가기
기록/SSAFY

[SSAFY] 220112 기록

by ahj 2022. 1. 12.

알고리즘을 잘 해야 한다.
알고리즘 교육 == SW 문제해결 교육 == PS

→ 알고리즘 짱짱짱. 공부해. 문제 풀어 1일 1문제하라고...

뭘 익혔는지, 배웠는지

가 아니라 뭘 만들어 봤느냐가 중요하다.

→ 나레기 반성해.. 뭘 만들어 봤니

 

드디어 반사람들끼리 인사

나는 당연히 새로 생긴 비전공 Java반일줄 알았는데 전공자 반이었다니 ㅎㅎ 열심히 하자

전공자 반인데도 생각보다 본전공이 아니었던 사람들이 많다 우리반(!)

원래 계속 이래왔던 것일까, 시대의 흐름이 점점 전공과 무관하게 가고 있다는 방증인걸까?

또 전공하고 온 사람들은 실력자들이 정말 많다는 게 느껴진다.

 

2월 내내 알고리즘만 한다니.. 기대 반 걱정 반이다

월요일마다 시험, 월말평가도 있음

→ 공부를 열심히 해야겠지?^^

개발환경 통일, Java 시작. 화이팅!


기본 환경 설정

  • JDK 설정
  • STS 설정 : Eclipse + 여러가지
  • Tomcat(서버 프로그램) 설정

사실 STS 깔면 다른 거 깔 필요가 없다.

https://www.azul.com/

JDK(Java Develop Kit) 줄루(Zulu)를 이용할거임

오픈 소스라서 이름이 있음.

환경 변수 설정

C:\Program Files\Zulu\zulu-8\bin

오늘 cmd에서 입력한 javajavac는 zulu 밑에 들어있는 것들이다

STS(Spring Tool Suite) 설정

종합 선물 세트 같은 거~

이 안에 이미 Eclipse가 있음. 추가적인 기능들이 더 붙어 있음

https://spring.io/

부품들을 모아모아 프로그램을 짜는 게 OOP

JDK는 부품들이 잔뜩 들어있는 것

우리가 만드는 프로그램을 source라고 한다.

  1. Project 만들기
  2. Project src 폴더 안에 Package 만들기
  3. Package 안에 Class 만들기

프로젝트 만들고 src 폴더 안에다가 Package

프로젝트를 만드니 폴더가 생기네, 패키지를 만드니 역시 폴더가 생기네.

Project도 폴더~ Package도 폴더~

Project: 작업할 땐 Project 단위로 한다.(ex. 쇼핑몰 프로젝트를 한다? 인터넷 뱅킹 프로젝트?)

그 안에 java 파일이 엄청 많이 생기겠지. 다 합치면 파일 갯수가 어마어마하다. 그래서 폴더를 또 나누는 것

package 뭐하러 나눠요?

결국 Class가 많아서.. 그래서 결국 package는 폴더로 만들어진다.

package 이름이 달라야 class 이름이 같아도 따로 저장되겠지~

결국은 관리를 편하게 하려고

 

package 선언문일 가장 첫줄에 들어간다. package 선언문보다 먼저 나올 수 있는 건 공백, 주석 등과 같은 것만 가능하지 다른 것보다 가장 위에 package가 나온다.

 

우리가 만든 class를 실행하고 싶으면 main method가 반드시 있어야 한다.

어 그러면 실행이 안되는 class도 있나요? 그럼~ 본인은 실행이 안되고 남이 자신을 가져다 쓰는 애가 있다.

 

Class는 두 종류로 나눌 수 있다.

  • 실행이 되는 놈(main())
  • 실행이 안되는 놈(main() 없음) → 이런 애들은 main()이 있는 애들이 가져다가 쓴다.

차를 예로 들면 오디오 같은 애들은 실행도 되면서 차에 쓰이는데, 볼트 같은 애들은 자체적으로 실행은 안돼도 차가 사용한다.

 

println에서 ln은 line 준말

ln을 안붙이면 그냥 출력이라 줄이 안바뀐다.

알고리즘 문제 같은 경우 이런 걸 고려해서 출력해야 한다.

줄바꿈해서 출력인지, 줄바꿈 안하고 해야하는지

그래서 줄바꿈 안해야할 때는 print로 줄바꿈은 println으로

 

compile 할 때는 javac로, execute(실행) 할 때는 java로

VM(Virtual Machine) 성능이 많이 좋아졌음. 한번 끼어들어가고서 다음부터는 새로 끼어들어가지 않는다.

JRE(Java Runtime Environment)? JDK(Java Development Toolkit)?

JDK 안에 JRE가 포함

JDK = JRE(JVM+API) + 컴파일러 + API 문서작성 유틸리티 + ...여러도구

JRE는 JVM이 있으니까 실행은 가능하다. 하지만 개발은 할 수 없다. 그래서 둘 다 하려면 JDK가 필요한 것

keyword(class 이름 등으로 쓸수 없는 것들)

const는 더는 안씀 → final 로 대체

goto 역시 스파게티 코드가 될 수 있기 때문에 안씀

Java에서 사용되는 Data type들

크게는

  1. primitive type(기본 타입)
  2. reference type(참조 타입)

둘 중에 하나다.

1. primitive type

  • 논리형 → boolean
  • 숫자형

    • → 정수형 → byte, short, int, long + char
    • → 실수형 → float, double

보통 밑줄 쳐놓은 놈들 쓰면 된다.

2. reference type

기본타입 아니면 무조건 참조타입임

  • class
  • interface
  • array
  • enum
  • 등등

우리가 만드는 class도 하나의 data가 되는 거다. reference type.

연산에 사용이 되는 정수는 4byte

char‘’로만

String“”


case-switch, if-else

case에 들어가는 조건에는 long을 제외한 정수형이 올 수 있음.

break는 하나의 case가 끝나면 해줘야 한다. 안하면 밑의 것들도 다 걸린다.

default가 맨 밑에 꼭 나와야하는 것은 아니다.

switch-case로 쓸 수 있는 내용들은 100% if-else문으로 바꿀 수 있다. 하지만 if-else로 쓸 수 있는 내용들을 100% switch-case로 바꿀 수는 없다.

→ 왜 그럴까? 범위 때문에 switch에서는 큰가 작은가 비교는 어렵다. 기능은 동일하나 범위가 한계가 있다.

따라서 if-else로 더 많이 만들 수 있다.

'기록 > SSAFY' 카테고리의 다른 글

[SSAFY] 웰컴키트 수령  (1) 2022.01.18
[SSAFY] 220113 기록  (1) 2022.01.13
[SSAFY] 220110~220111 아이디어톤  (0) 2022.01.10
[SSAFY] 220107 3일차 로봇 코딩  (0) 2022.01.07
[SSAFY] 220106 게임코딩 + Daily Sprint  (1) 2022.01.06

댓글