반응형

전체 글 121

[프로그래머스][L1] 명예의 전당 자바 문제 풀이 및 정답

[프로그래머스][L1] 명예의 전당 자바 문제 풀이 및 정답 1. 명예의 전당 array 만들기 arrayList로 명예의 전당을 만든다. 명예의 전당에서 가장 낮은 등수를 빼는 작업을 해야되기 때문에 해당 작업을 하기 arrayList가 적합하다고 판단. 2. 점수 발표 시 행동 정하기 점수 발표 시 명예의 전당 꼴찌와 비교가 필요(sorting하기) 3. 다음 날 비교를 위해 재정렬 extra) - 해당 문제 케이스에서 9, 11번은 명예의 전당이 출연 가수보다 많다. - 무조건 sorting할 필요없이 안해도 되는 경우를 고려할 수 있다. - 명예의 전당이 차기 전과 모두 찬 후를 나눠서 볼 수 있다. 코드 보러 가기

코테/문제풀이 2023.06.10

[프로그래머스][L1] 덧칠하기 자바 문제풀이

프로그래머스 L1 - 덧칠하기 자바 문제풀이 프로그래머스 덧칠하기 문제풀이입니다. 1. wall 배열을 잡아줍니다. 편의성을 위해 n+1로 사이즈를 잡아주고 0은 쓰지 않도록 해줍니다. 디폴트가 false이기 때문에 편의를 위해 칠할 곳을 true로 변경해줍니다. 2. target을 만나면 m만큼 칠해줍니다. 한번에 페인팅해야되는 길이가 m이고 이 길이만큼 무조건 칠해줘야하기 때문에 칠해줍니다. 왼쪽에서 시작해서 나아가는 반복문을 사용하여 간단하게 만들 수 있습니다. 3. 포인터 중지점 마련 m만큼 칠해야되는데 룰러의 길이가 매우 길수도 있습니다. 그런경우 중단점을 마련해줘야하는데, 총 길이 - 룰러 길이 보다 짧은 구간부터는 왼쪽에서 오는 구간을 막고 중단해줍니다. 4. 중단점에 대한 연산 처리 중단 ..

코테/문제풀이 2023.06.10

[도서] 스프링부트와 AWS로 구현하는 웹서비스 - AWS 설정 최신판(20230601)

자체 서비스를 운영하고 있는게 없어 AWS 배포를 보면서 다시 해보고 있는데 책 출판일 기준 바뀐 부분들이 있어서 공유하려고 합니다. 한 번 해보신 분들은 익숙하게 넘어갈 수 있겠지만 처음 진행하시는 분들은 참고하시면 좋을 것 같습니다. 바뀐 부분이나 알면 좋을 부분들만 설명하고 나머지는 책과 같습니다. 인스턴스 생성 책에서는 Amazon Linux 1 AMI 인스턴스를 생성했으나 aws 측에서 2020년 6월 30일까지로 공고한 바 있습니다. 현재는 2 버전으로 만들면 되고 2023 AMI 버전으로 설치시 프로젝트에 사용된 8버전 자바 설치에 어려움이 있습니다. 탄력적 IP 부여 책에서도 나와있는데 탄력적 IP(고정IP)를 만들고 인스턴스에 바로 연결하는게 좋습니다. 탄력적 IP를 만들기만 하고 연결하..

ETC/도서 2023.06.01

[Linux] 리눅스 디스크 용량 확보

Free disk space is less than 5%~~ 와 같은 알림이 왔다. 오류는 아니지만 가만 두면 오류가 생길 수 있기 때문에 관련해서 서버 문제가 생길 수 있기 때문에 바로 문제를 찾아보기 시작했다. (환경은 centOS 7버전) 1. 원인 탐색 df -h 명령어를 통해 확인하니 추가된 스토리지 볼륨 그룹이 아닌 기본 스토리지 영역에 500메가 밖에 남지 않았었다(지금은 해결해서 줄어든 상태) 어떨때는 100메가로 줄어들기도 하고 1기가로 늘어나기도 했었는데 다른 공간 여유는 있지만 필요한 특정 공간 여유가 없어지면 어떤 것이든 문제가 생길 확률이 매우 높기 때문에 더더욱 빨리 해결을 해야했다. 추정 원인들은 다음과 같았다. 로그파일 (특정 로그가 쌓여서 용량 부족) 스왑메모리 (자원이 부..

Dev/Linux 2023.05.14

[오류대처] basetime entity null 받는 경우 Expecting actual not to be null

Expecting actual not to be null java.lang.AssertionError: Expecting actual not to be null basetime entity를 통해서 create, modified 시간을 가져오려고 했는데 위와 같은 오류가 발생하면서 null 값이 날라온다 해당 클래스는 별로 선언할게 없다시피해서 상속만 제대로 받아준다면 되어야한다고 생각했다. 결론적으로는 main함수가 붙은 쪽에서 허용을 해주어야한다. application.java 클래스에 아래와 같이 JpaAuditing을 Enable 해주면서 문제가 해결되었다. 레퍼런스) [문제해결]JPA를 이용한 생성시간 자동화 구현후 DB에 날짜가 null로 들어가는 문제 JPA Auditing으로 생성수정날짜 ..

오류대처 2023.05.07

[오류대처] There was an unexpected error (type=Internal Server Error, status=500).Failed to convert from type [java.lang.Object] to type [byte[]] for value

There was an unexpected error (type=Internal Server Error, status=500). Failed to convert from type [java.lang.Object] to type [byte[]] for value 소셜 로그인 기능을 만들던 중 위와 같은 에러가 발생했다. 결론부터 말하자면 직렬화를 구현해줘야하는 상황이며 User엔티티를 SeesionUser클래스를 만들어 엔티티와 세션을 위한 엔티티 분리하고 직렬화를 해주면서 아래와 같이 간단하게 해결이 가능하다. 직렬화는 컴퓨터에서 객체나 구조를 바이트 스트림으로 변환하는것을 뜻하는데 소셜 로그인을 도입하기 위한 상황에서도 포함이 된다. 여기서 선택지는 두 가지로 기존 User엔티티에 직렬화를 추가하는것과..

오류대처 2023.05.05

[오류대처] oauth 구글 로그인 이름 잘못표시되는 경우

구글로그인 기능으로 로그인해서 userName을 받았을 때 사진처럼 뜨는 경우가 생겼다. 원래대로라면 구글 계정에 설정된 이름이 떠야하는데, 운영체제 user네임으로 잡힌 것이다. 코드를 살펴보니, userName으로 view단에 넘겨주는데 그래서 userName으로 선언해서 사용했다. 하지만 userName은 운영체제 환경변수로 잡혀있어서(윈도우 기준) 저대로 받으면 제대로 인식을 못한다. 간단하게 이름을 바꿔주면 해결된다. uName으로 바꿔준 뒤 실행하니 이름이 올바르게 뜨는 것을 확인할 수 있다.

오류대처 2023.05.02

[오류대처] GetMapping 어노테이션 안되는 경우

@GetMapping 어노테이션이 안먹히는 경우가 존재합니다. 구글에서 찾아보면 spring 버전 문제에 대한 글을 찾을 수 있는데, 이 것 외에도 사소한 실수일 수 있습니다. implementation 'org.springframework.boot:spring-boot-starter-web' build.gradle에 위처럼 디펜던시를 추가해줬는지 확인해보거나 컨트롤러로 지정해야하는 클래스에 @Contoller 가 빠진 것 일 수 있습니다.

오류대처 2023.04.19