728x90

전체 글 198

JAVA Synchronized 스레드 동기화

JAVA Synchronized 스레드 동기화 스레드 동기화 (Thread Synchronized) 멀티스레드 환경에서 여러 스레드가 하나의 공유자원에 동시 접근하지 못하게 막는 것이다. 공유데이터가 사용되어 동기화가 필요한 부분을 임계영역(critical section)이라고 부르고, 이 임계영역에 synchronized 키워드를 사용해 여러 스레드가 동시에 접근하는 것을 방지하여 동기화시킨다. Synchronized로 지정된 임계영역은 한 스레드가 접근해 사용할 때 lock이 걸림으로써 다른 스레드가 접근 불가능 하도록 해줍니다. 해당 스레드가 임계영역의 코드를 모두 실행한 후 벗어나게 된다면 unlock 상태가 되고, 다른 스레드가 임계영역에 접근하여 다시 lock을 걸고 사용가능하게 된다. 스레드..

[ 어떤 개발자가 되고 싶은가 ] '개발자' 진로에 대한 고민

[ 어떤 개발자가 되고 싶은가 ] '개발자' 진로에 대한 고민 컴퓨터공학과 진학 이유 컴퓨터공학과에 진학하고 싶다는 생각은 고등학교 1학년 때부터 한 것 같다. 중학교 때까지는 광고 디자이너가 되고 싶었는데 그 이유는 중학교 시절 나는 창의력이 풍부하여 아이디어 대회가 있으면 항상 수상을 했기 때문이다. 그래서 내가 잘하는 일을 하고자 하였다. 하지만 광고 디자이너 되기 위해서는 미대에 진학해야 한다는 사실을 깨닫고, 미적 감각이 없던 나는 그 꿈을 포기하였다. 그래서 창의력을 살릴 수 있는 다른 직업을 생각해 보게 되었다. 나는 무려 5살 때부터 게임을 좋아했다. 우리 아버지는 it 금융권에서 일을 하셨는데 항상 바쁘셔서 주말에도 출근하셨다. 가끔 주말마다 나를 데려가 일을 하셨는데, 어린아이가 회사에..

일상 2024.03.28

스프링부트 레이어드 아키텍쳐

스프링부트 레이어드 아키텍쳐 모델과 엔터티 차이 모델 : 비즈니스 데이터를 담는 역할 엔터티 : 데이터베이스의 테이블과 스키마를 표현하는 역할 롬복 어노테이션 설명 @Builder : 빌더 클래스를 자동생성해서 객체 생성하기 TodoEntity todo = TodoEntity.builder().id("123").userId("SeY").title("psy").build(); @NoArgsConstructor : 매개변수가 없는 생성자를 자동으로 구현해 줌 @AllArgsConstructor : 클래서의 모든 멤버 변수를 매개변수로 받는 생성자를 자동으로 구현 @Data : 클래스 멤버 변수의 Getter/Setter 메소드를 자동으로 구현 @RestController : 이 클래스가 REST 컨트롤러임을..

REST API (3)

왜 API는 REST가 잘 안되나? 일반적인 웹과 비교, 웹페이지 HTTP API Protocol HTTP HTTP 커뮤니케이션 사람-기계 기계-기계 Media Type HTML JSON REST API가 실패한 이유 : 커뮤니케이션, Media Type HTML JSON 커뮤니케이션 Hyperlink 가능(a태그) 불가능 Self-descriptive 가능(html 명세) 불완전 Json이 불완전하다는 의미 : 대괄호, 중괄호 파싱, 배열 해석은 가능하지만 그 안에 있는 값이 무엇인지는 정의되지 않음. 따라서 JSON의 문법 해석은 가능하지만, 의미를 해석하려면 별도로 API 문서가 필요하다. HTML은 REST를 성공하였다. 하지만 JSON은 REST를 성공하지 못하였다. 독립적인 진화에 도움 그런데..

CS/CS 교육팀 2024.03.24

REST API (2)

REST REST란? 추상적인 개념? REST : REpresentational State Transfer REST : a way of providing interoperability(상호운용성) between computer systems on the internet WEB(1991) 등장 배경 : 어떻게 인터넷에서 정보를 공유할 것인가? 팀버너스리의 답 : 정보들을 하이퍼텍스트로 연결한다. 표현방식 : HTML 식별자 : URI 전송방법 : HTTP (프로토콜) HTTP/1.0(1994-1996) Roy.T.Fielding : How do I improve HTTP without breaking the Web? HTTP를 정의하게 된다면 기존에 구축되어진 웹과 호환성 문제가 생기는 것을 피하고 싶음 ..

CS/CS 교육팀 2024.03.09

Rest API (1)

Rest API Rest API 발표 목차 웹 기초 (프론트엔드, 백엔드, AWS, HTTP 요청/응답) 웹 아키텍쳐 HTTP JSON 서블릿엔진 Rest API 웹기초(프론트엔드, 백엔드, AWS, HTTP 요청/응답) HTML/CSS/Javascript/React : 프론트엔드 애플리케이션 개발에 사용, 프론트엔드 애플리케이션은 프론트엔드 클라이언트를 반환하는 서버가 존재한다. 프론트엔드에서 반환하는 서버의 역할은 단 한가지 → 프론트엔드 프레임워크 애플리케이션을 반환하는 것 프론트엔드가 하는 역할 : UI 개발 JAVA/Javascript/python/Spring Boot / Node.js : 백엔드 애플리케이션 개발에 사용. 대체로 스프링 부트를 사용하여 Rest API를 구현한다. (Rest A..

CS/CS 교육팀 2024.03.06

[자격증] SQLD SQL 개발자 자격증 3주 만에 획득

SQLD SQL 개발자 자격증 합격 저는 제51회 SQL 개발자 SQLD 자격증 시험에 합격했습니다. 시험은 2023년 11월 18일 토요일 10:00에 응시했습니다. 성적은 2023년 12월 15일 금요일 오후 6시에 성적이 공고될 예정이었지만, 4시경 성적이 공고되었습니다. 결과 저는 데이터 모델링의 이해 부분에서 16점, SQL 기본 및 활용에서 52점을 취득해 총점 68점으로 합격했습니다. 저는 전공자라서 데이터 베이스 과목을 3-1에 수강한 전적이 있습니다. 데이터 베이스 과목은 SQLD 시험을 보기 1년 전에 수강했습니다. 아쉽게도 SQLD 시험은 실물 자격증이 나오지 않습니다. 또한 1년 6개월 뒤에 재교육을 받아 평생 유효기간으로 변경됩니다. 시험공부 방식 1. SQL 전문가 가이드 SQL..

롬복과 리팩터링

롬복(lombok) : 코드를 간소화해 주는 라이브러리 로깅(logging) : 프로그램의 수행 과정을 기록으로 남기는 것 리팩터링(refactoring) : 코드의 기능에는 변함 없이 코드의 구조 또는 성능을 개선하는 작업 dependencies{ compileOnly 'org.projectlombok:lombok' // 추가 annotationProcessor 'org.projectlombok:lombok' // 추가 } 코끼리 모양 새로고침 누르기 -> 롬복 라이브러리 다운로드함 - 생성자 리팩터링 생성자 지우고 ArticleForm 클래스 위에 @AllArgsConstructor 어노테이션을 추가하면 클래스의 필드 매개변수에 해당하는 생성자가 자..

인텔리제이 오류 모음

인텔리제이 오류 모음 1. 환경 변수 오류 인텔리제이에서 환경변수 설정하는 방법 https://devlog-wjdrbs96.tistory.com/m/363 [Intellij] 인텔리제이에서 환경변수 설정하는 방법 들어가기 전에 이번 글에서는 Intellij에서 env 설정을 하고 이것을 application.yml에서 참조하는 법에 대해서 알아보겠습니다. 이렇게 하고자 하는 이유는 지금까지는 jwt secret key 라던지, DB url, DB id, D devlog-wjdrbs96.tistory.com 2. 코드 오류 log 읽어보고 어디에서 오류가 났는지 확인하기!!!! 3. 403 에러 1. 그냥 코드 문제일수도 있다..............!!! 2. spring Security 오류 POST가..

Back-End/Project 2024.02.11

S3 403 에러 해결방법

S3 403 에러 해결방법 1. 버킷 정책 수정 [SpringBoot] AWS S3로 이미지 업로드 (velog.io) velog velog.io 버킷 정책의 문제인가 해서 버킷 정책을 알아보고 수정해봤는데 해결 되지 않았다. 2. 유튜브 참조 https://www.youtube.com/watch?v=_-7rG_Vwhao 3. 블로그 https://velog.io/@doohyunlm/AWS-S3-%EB%B2%84%ED%82%B7-%EA%B6%8C%ED%95%9C-%EC%84%A4%EC%A0%95 velog velog.io 4. 다시 오류 해결 해보기 https://growth-coder.tistory.com/116 [AWS] 스프링에서 S3 버킷에 이미지 업로드하기 이전 포스팅에서는 관리자 IAM 사용자..

Back-End/Project 2024.02.08
728x90