전체 글 128

[김영한강의] 자바복습 2. 연산자 우선순위

1. 괄호 () 2. 단항 연산자 (예: ++ , -- , ! , ~ , new , (type) ) 3. 산술 연산자 ( * , / , % 우선, 그 다음에 + , - ) 4. Shift 연산자 ( > , >>> ) 5. 비교 연산자 ( = , instanceof ) 6. 등식 연산자 ( == , != ) 7. 비트 연산자 ( & , ^ , | ) 8. 논리 연산자 ( && , || ) 9. 삼항 연산자 ( ? : ) 10. 대입 연산자 ( = , += , -= , *= , /= , %= 등등 연산자 우선순위는 상식선에서 생각하고, 애매하면 괄호를 사용하자 누구나 코드를 보고 쉽고 명확하게 이해할 수 있어야 한다. 개발자들이 연산자 우선순위를 외우고 개발하는 것이 아니다! 복잡하면 명확하게 ..

[김영한강의] 자바 복습 1. 변수 초기화

실무를 경험하면서 가장 많이 느꼈던 것은 모래위에 성을 쌓는다는 느낌을 받았다. 김영한님의 강의를 통해 자바를 복습하면서 내가 자세히 알지 못하고 사용했던 것에 대해 정리하고자 한다. 1. 변수 초기화의 개념 자바의 변수 초기화란 아무것도 없는 값에 값을 넣는 행위를 뜻한다. package variable; public class Var5 { public static void main(String[] args) { // 1. 변수 선언, 초기화(아무것도 없는 값에 값을 넣는행위) 각각 따로 int a; a = 1; System.out.println(a); int b = 2; // 2. 변수 선언과 초기화를 한번에 System.out.println(b); int c = 3, d = 4; // 3. 여러 변..

[Docker] Centos7 Docker 설치하기 및 오류해결

Docker 설치에 관한 것은 아래 홈페이지에 잘 나와 있습니다. 여기서는 이렇게 했구나~ 용도로 참고해주세요+ 오류해결 docs.docker.com/engine/install/centos/ Install Docker Engine on CentOS Learn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps. docs.docker.com 1. Yum-utils 업데이트 [root@pulunick] su - [root@pulunick] 암호입력하시구 [root@pulunick] yum install -y yum-util..

개발자/Docker 2023.11.14

DAL 사이드 프로젝트 ① 팀 결성 ~ DAL 소개

[DAL 사이드 프로젝트 시작] 아이디어의 공유 입사 3개월 차 부터 회사 개발자들과 같이 꾸준히 스터디를 해왔다. 처음은 꾸준히 부족한 부분의 강의를 들으며, 공유하는 식으로 진행을 했고, 스터디 한달 차 부터 사이드 프로젝트를 위해 각자의 아이디어를 공유를 하게됐다. 카페추천, 공구사이트 등등 여러 좋은 아이디어 들이 많았고, 회의를 통해 결정한 결과 위치기반 시스템을 이용해 사용자가 원하는 술을 파는 가게를 추천해주는 아이디어가 선정되었다. 내 아이디어 였던 만큼 구체화할 필요가 있었다. 팀 결성 DAL 프로젝트의 처음 명칭은 새모이(세상의 모든 술을 Eating)였다. 회사 인원들로 구성된 5명의 개발자들에서 출발했고, 디자인을 의뢰할려고 부탁한 친구는 흔쾌히 우리팀에 합류를 하게 되었다. 이때 ..

[javaScript] 타이머 만들기

해당 로직은 만들다 폐기된 로직이다. 나름 열심히 만들었는데 폐기된 것이 아까워 티스토리에 공유하고자 한다. var loginTimeElement = $("#loginTime"); var consultationTimeElement = $("#consultationTime"); var restTimeElement = $("#breakTime"); var state = $("#areaUserStatus"); // 시작 시간과 상담 시간을 가져옴 $.ajax({ url: '/main/getAuthId', method: 'GET', success: function(response) { console.log(response + "footer") var loginTime = response.loginTm; var ..

카테고리 없음 2023.07.25

url 유효기간 설정_세션동작방식

@GetMapping("/file/downloadURL") public ResponseEntity downloadURL(@RequestParam String fileId, HttpServletRequest request) throws MalformedURLException { // fileId를 통해 파일 정보 조회 FileManageVO fileManageVO = fileManageService.selectFile(fileId); String orgnFileNm = fileManageVO.getOrgnFileNm(); // 원본 파일 이름 String strgFileNm = fileManageVO.getStrgFileNm(); // 저장된 파일 이름 String strgFilePth = fileMana..

개발자/Spring 2023.07.13

div 박스에 글이 넘칠때 + breakword를 사용한 후 \n이 안먹힐때

.talk_cont .talk_r .speech_bubble.bgyellow { background: #ffe817; max-width: 280px; overflow-wrap: break-word; white-space: pre-wrap; } 이런식으로 overflow-wrap에 break-word를 걸어두고 white-space에 pre-wrap을 걸게되면 정상적으로 글이 들어가는 것을 확인할 수 있다. 다만, 왜 url같은 것은 정상적으로 div박스에 안들어가고 넘치는지 알 수가 없었다. 아는 사람은 댓글 부탁해요

[오늘의 오류_회사]타임리프로 onclick 이벤트에서 전달받은 값을 JS로 넘기는 법/th:onclick과 onclick의 차이

현재 만들고있는 프로젝트의 html을 js와 분리 작업을 진행하던 중 controller부터 전달받은 데이터를 js로 넘기는 것이 잘 안됐었다. 스크립트를 선언하고 넘겨도 되지만 html을 최대한 깔끔하게 하고싶어 방법을 찾던 중 타임리프를 이용하면 가능했었다. th:onclick="deletePost([[${post.cd}]]) 이런식으로 타임리프를 이용하면 쉽게 값을 JS단으로 넘길 수 있다. 1줄요약 : 서버에서 가져오는 값이 있을때는 th:onclick 브라우저의 이벤트 발생은 onclick 이하 원문 th:onclick과 onclick의 차이점은 HTML과 Thymeleaf의 렌더링 방식에서 차이가 있습니다. 일반적으로 HTML에서 onclick은 클라이언트 사이드에서 동작하는 이벤트 처리기를 ..

[오늘의 오류_회사]스프링부트 오류_실행이 안될때_실행이 되다가 멈출때_리팩토링 시 발생할 수 있는 오류

스프링부트를 실행할때 실행이 되다가 바로 종료되는 경험을 해본 적 있을 것이다. 나의 경우 많은 오류를 겪었지만 오늘 PM의 요청으로 DatabaseConfig의 위치를 옮기던 중 실행이 안되는 오류를 겪었다. 이 오류의 경우 디버깅을 하지 않는 이상 오류나는 위치를 확인하기 어렵다. 오류의 이유는 databaseConfig와 Application이 같은 선상에 위치하지 않기 때문이다. 즉, 같은 패키지 안에 있지 않기 때문에 발생한다. 그래서 같은 패키지 안에 위치하게 해주거나, Application을 하나 더 상위 패키지로 위치하게 해주면 오류는 해결된다.

[프로그래머스] JAVA_직사각형 별 찍기

https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.Scanner; public class programmer_3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); for(int i = 0; i < b; i++) { for (int j = 0; j ..