결론
밍글데이
강의 5강 - 스레드
과제 피드백(허지회 튜터님)
스프링 대비 스터디 시작(나, 지은님, 태준님)
오늘 겪은 문제
피드백 받은 부분이나 강의 밀렸던 것들 공부했다.
스프링 스터디 시작했다.
본문
오전에는 제출 전에 마지막으로 코드를 둘러봤다. 프로그램 작동시켜서 꼼꼼히 살펴보니, 은근히 수정할 부분이 많았다. double로 받으려고 했는데, sc.nextInt() 이렇게 받고 있고, 문제 내용을 뒤늦게 이해해서 무한히 저장 가능하게 바꿔줬고, 그 외 자잘한 문제들 수정하고 주석 좀 정리했다. 오후에는 강의를 들으면서 스레드 부분을 공부했다.
스레드 사용 방법
- Thread를 extends 해고 run() 를 오버라이드해서 실행할 작업을 만들 수 있다
- Runnable 을 implements 하고 run()를 오버라이드해서 작성
- 람다(아직 잘 모르겠음)
멀티 스레드는 안정적으로 결과값을 예측할 수가 없다.
os 상황에 따라 가변적으로 결과가 바뀔 수 있다.
스레드의 종류
데몬 스레드 : 명시적으로 스레드를 만들어서 실행시키는 우선 순위가 낮은 스레드
보통 보조 역할을 담당하고, 대표적으로는 가비지 컬렉터로 사용된다.
thread.setDaemon(true); : 스레드를 데몬으로 만든다
우선순위가 낮다 => 상대적으로 다른 스레드레 비해 리소스를 적게 할당받음
사용자 스레드 : 메인 스레드가 대표적인 사용자 스레드라고 볼 수 있다. 우선순위가 높다. 보이는 곳에서 실행된다.
JVM은 사용자 쓰레드의 작업이 끝나면, 데몬 쓰레드도 자동으로 종료시켜버린다.
우선순위와 쓰레드 그룹
우선순위 세팅 가능
이 우선순위는 OS가 아닌 JVM에서 제공하는 우선순위이다 우선 순위가 높으면 할당 리소스가 많아서 작업이 빨리 끝날 확률이 높다
쓰레드 그롭
스레드 그룹 안에 100개의 스레드가 있다면? 다 관리하기 힘듦 그래서 한번에 실행하거나 한번에 끝낼 수 있음 모든 스레드는 하나의 그룹에 포함되어 있다. 일반적으로 안 정하면 메인 스레드에 보통 들어간다
ThreadGroup group1(객체변수명) = new ThreadGroup("Group1"(그룹이름));
Thread 스레드명 = new Thread(group1(객체변수명), task(Rannable target), "Tread 1"(String name));
쓰레드의 상태와 제어
sleep(), interrupt()
인프런의 김영한님 스프링 강의
기록하면서 강의 들었고, TIL은 정리해서 쓰려고 했는데.. 오늘은 너무 늦었으니 일단 써버려잇
7월 31일 스프링 스터디 실제 동작하는 간단한 어플리케이션을 다음 순서로 배워본다
스프링 프로젝트 생성 스프링 부트로 웹 서버 실행 회원 도메인 개발 웹 mvc 개발 DB연동 - JDBC, JPA, 스프링 데이터 JPA 테스트 케이스 작성
학습 방법 처음부터 끝까지 코딩
전박적인 그림을 확실하게 그리고 깊이있게 스프링 핵심 원리 쭉 파고 들면 됨 깊이가 굉장히 있음 핵심원리가 2가지 잇는데 1- 웹 mvc 2- DB데이터 접근 기술 요즘은 웹으로 개발해서 웹이 굉장히 중요 디비 접근은 요즘 다 디비에 저장하는데 이게 생각보다 만만치않음
프로젝트 생성
자바는 알아서 설치 하셈요
처음에 넣은 라이브러리 thymeleaf spring web
- 빌드.그래들 그래들에 대해서는 나중에 자세히 보셈 그냥 뭐 땡겨온다
라이브러리를 다운 받는 곳이 저 메이븐센트럴 repositories { mavenCentral() }
메인메소드 런! 출력 보면 톰캣 이게 중요해
톰캣이란 내장 웹 서버를 만들어내서 localhost:8080 보면 에러페이지 나옴 이러면 성공
초기설정 중, 조금 빠르게 만드는 방법 세팅즈 > 그래들 검색 > build and run using, run tests using > 인텔리제이로 변경
실제 개발자는 콘솔창에 안찍는다 sout 로그를 사용해서 남긴다 로그 관련된거 궁금하면 알아서 검색해 보세요
!!스프링은 너무 커서 필요한거 알아서 찾아서 해야돼 스프링 사이트 >프로젝트>스프링부트>LEARN > 버전의 레퍼런스 독스 들어가보면 여러가지 쭉 있다. 이 메뉴얼에서 검색을 잘 해야한다
템플릿 엔진을 쓰면 모양을 바꾸거나 할 수 있다 근데 우린 타입리프라는 템플릿을 쓴다
그리고 위에 메뉴얼에 template engine 검색해보면 또 나오는게 있다
동작하고 프로그래밍되는 화면을 만들어보자
'내일배움캠프 > 회고록' 카테고리의 다른 글
| 8월 2일 금요일 (0) | 2024.08.05 |
|---|---|
| 8월 1일 목요일 (0) | 2024.08.01 |
| 7월 30일 화요일 (0) | 2024.07.30 |
| 7월 17일 수요일 (2) | 2024.07.18 |
| 7월 16일 화요일 (0) | 2024.07.17 |