전체 글 122

<java> 지뢰찾기 게임 업로드

기술Java, java Swing주요기능폭탄 위치 랜덤 생성 폭탄의 위치를 랜덤으로 생성할 때, 중복 위치가 발생하지 않도록 위치의 중복 여부를 boolean 값으로 관리하고, 폭탄의 개수를 카운트하는 방식으로 구현 했습니다.주변 8방향 폭탄 개수 파악 각 셀 주변 8방향에 있는 폭탄의 개수를 파악한 후, 해당 숫자를 입력하고 클릭 시 보이도록 구현했습니다. 주변 셀을 순회하며 폭탄 개수를 세어 숫자를 표시했습니다 폭탄 필드일 때는 9를 값으로 주어 다른 칸들과 구별하였습니다.트러블 슈팅Java Swing을 이용한 GUI 구현배경: 콘솔에서만 실행되는 프로그램이 아쉬워, 실제로 사용할 수 있는 프로그램 제작을 목표로 Java Swing을 사용하여 GUI를 구현했습니다.동기: 유튜브에서 카드 뒤집기 게임을..

후기 2024.05.22

<java> 백준 15829 - BigInteger

99클럽 코테 스터디 2일차 / TIL 백준 15829 / BigInteger https://www.acmicpc.net/problem/15829 해싱이 무엇인지 궁금해서 들어갔다가브론즈 2 문제 하나만 가볍게 해결해 보기로 했다. 50점 까지는 브론즈 답게 아주 쉽게 갔지만BigInteger를 써보지 않아 100점은 풀지 못해 결국 정답을 참고 하게 되었다.   BigInteger 범위와 상관없이 정수를 문자열로 저장하여 안전하게 저장할수 있는 자료 숫자의 비교int compare = bigNumber1.compareTo(bigNumber2);사칙연산System.out.println("덧셈(+) :" +bigNumber1.add(bigNumber2));System.out.println("뺄셈(-) :"..

알고리즘/java 2024.05.21

<AWS> RDS 생성 및 intellij 연결

RDS 생성1. RDS 검색 후 클릭2. 데이터 베이스 생성3. "표준생성" 과 "MySQL"을 클릭합니다.4. "프리 티어"를 선택합니다.5.instance 식별자, 아이디, 비밀번호 입력(비밀번호 꼭 기억하기!!)6. DB 인스턴스 크기와 스토리지는 설정 그대로 두고 넘어갑니다.7. [중요] 연걸 > 추가 연결 구성 탭을 클릭합니다.퍼블릭 액세스 기능: "예" 선택→ 정책 업데이트로 IPv4의 경우 실행 중인 EC2 인스턴스에 연결되지 않은 유휴 상태의 탄력적 IP 주소와 같은 경우는 요금이 발생하는 점도 참고해 주세요.프라이빗으로 사용하시는 경우에는 퍼블릭 IPv4가 사용되지 않기 때문에 이로 인한 비용은 발생하지 않습니다.RDS DB 인스턴스 생성 시 퍼블릭 액세스를 허용하시는 경우 퍼블릭 IPv..

web 개발/aws 2024.05.21

<Spring> 프로젝트 배포하기

1.gradle.build 이용하여 jar 파일 만들기bootjar 더블클릭하면 프로젝트\build\libs 에 {프로젝트}-0.0.1-SNAPSHOT.jar이 생긴 것을 확인 할 수 있다.2.filezila 사용해서 전체 파일 ubuntu로 옮기기git을 사용해서 ubuntu에 clone 할 수도 있지만 filezila를 사용 해 주었다. 사이트 관리자(ctrl + s)에 해당 설정을 해주고 연결을 해주고왼쪽(local) -> 오른쪽(ubuntu)로  {프로젝트}-0.0.1-SNAPSHOT.jar 파일을 옮겨준다.3. git bash 켜서 ubuntu 켜기ssh -i {pem key 경로 & 파일} ubuntu@퍼블릭 주소ex)  ssh -i /path/my-key-pair.pem ubuntu@13.1..

web 개발/spring 2024.05.20

<java> 프로그래머스 베스트 앨범 - Map과 정렬

99클럽 코테 스터디 1일차 TIL + Map과 정렬(key, value 기준으로) https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  오늘의 학습 키워드Map의 Value를 key값 기준으로 정렬하기! keySet을 끄집어 내서 keylist에 집어 넣는다.keyList를 오름/내림 차순으로 정렬 (정렬 기준 주의!)Collections.sort(playsList, (o1, o2) -> (playsMap.get(o2) - (playsMap.get(..

알고리즘/java 2024.05.20

<spring> IOC(제어의 역전), DI(의존성 주입)

IOC( Inversion Of Control) 제어의 역전소프트웨어 설계 원칙 중 하나로 프로그래밍에 있어 객체의 생성 및 관리 책임을 개발자에서 전체 애플리케이션 또는 프레임워크에 위임하는 디자인 원칙 프레임워크를 쓰면 프레임워크의 틀안에서 개발자가 짜둔 어플리케이션 코드를 호출하게 된다.제어하는 역할을 프레임워크가 가지게 된다. 이를 제어의 역전이라고 함 IOC 구현 방법Factory PatternTemplate Method PatternService Locator PatternDepedency Injection(DI)IOC 장점코드의 유연성과 재사용성 증가테스트 용이결합도가 낮아져 유지보수 용이IOC 단점코드의 가독성 떨어짐, 몰이해 발생초기설정과, 성능 이슈 발생가능 DI(Dependency I..

web 개발/spring 2024.05.18

<spring> spring framework 계층 (controller, service, repository)

1. 프레젠테이션 계층(Controller)클라이언트로 부터의 http 요청을 수신, 해당하는 응답 발신 2. 서비스 계층(Service)비지니스 로직 작성, 해결, 서비스의 핵심 로직 3. 데이터 엑세스 계층(Repository)repository에서 얻어온 정보를 바탕으로 자바 문법을 이용하여 가공 후 다시 controller에게 정보를 송신db나 파일 같은 외부 i/o 작업을 처리, 받아온 정보(Entity)를 데이터베이스에 저장하고 조회하는 기능 수행 각 계층들은 DTO를 통해 데이터 교환을 진행하고, 자신이 가지고 있는 역할만 수행하도록 개발 되어야 한다. 다른 계층의 역할을 수행하는 등, 결합도가 높아지면 재사용이 불가능 하고 코드를 작성 및 수정하는 데에 어려움증가 시킨다.

web 개발/spring 2024.05.18

<java> 백준 1018 - 완전탐색

https://www.acmicpc.net/problem/1018이것 또한 완전 탐색!! 단 문제를 제대로 읽어보면 전체 map은 항상 가로, 세로 8 이상이라는 조건이 있는데제대로 읽지 않고 8보다 작을 때 생길 오류에 대해 고민하느라고 아주 많은 시간을 낭비하였다.  또한 흰-검/ 검-흰 이 규칙을 두개를 다 적용해봐야 어떤것이 더 작은 답을 내놓는지알 수 있을 것이라 생각했는데, 한참 후에 다른 포스팅을 보고 나서야 이 규칙을 깨닫게 되었다. 오랜만의 알고리즘이라 그런지 감을 영 잡지 못해 실버 4 수준에서한참 해매어 꾸준함의 중요성을 다시 깨닫고 매일 1솔을 다시금 다짐하였다.         import java.io.BufferedReader;import java.io.IOException;im..

알고리즘/java 2024.05.17

<java> 백준 14889 - 완전탐색, DFS

https://www.acmicpc.net/problem/14889 간단한 문제이기는 하지만 완전 탐색이라고 마음먹지 않고풀면 한없이 꼬이기 쉬운 문제 같았다. 나는 항상 완전 탐색을 우선적으로 생각하지 않고반복하지 않으면서 문제를 풀 수 있는 방식을 찾으려고 하여많은 시간을 낭비하곤 한다.항상 완전탐색을 우선적으로 생각하여 시간 복잡도를 계산한 후에다른 방식을 탐색해야 겠다 문제 과정 자체는 어려울게 없었다.그냥 각 n/2를 뽑은 후 A,.B로 나눈다음각 점수를 더해서 합을 빼면 되는 문제이다. 이 과정에서 dfs를 잘 해서 팀을 잘 만들 수 있는가에 대한 문제이다.귀찮음을 생각하지 않고 외울 수 있는 것은 외우자라는 마음을 먹었는데이번에도 외우지 못해서 상당히 버벅거려 살짝 스스로 실망하였다. sta..

알고리즘/java 2024.05.17

<spring> @Controller vs @RestController 차이

@Controller전통적인 spring MVC controller이며 주로 view를 반환하기 위해 사용user의 요청으로 부터 view를 반환 @Responsebodyspring MVC controller를사용하면서 data를 반환하기 위해 사용controller에서는 데이터 반환하기 위해 responseBody를 사용 해야 함이를통해 JSON 형태로 데이터를 반환 할 수 있음 @RestController@Controller에 ResponseBody가 추가된 것JSON 형태로 객체 데이터를 반환하기 위해 사용, 데이터를 를응답으로 제공하는 REST API를 개발할 때 주로 사용하며 객체를 ResponseEntity로 감싸서 반환 요약!! Controller를 통해 반환 되는 것이 view // dat..

web 개발/spring 2024.05.15