HashMap으로 정보를 이용하기 예제 HashMap kC = new HashMap(){{put("부서코드",0); }}; for(Map.Entry one : kC.entrySet()){ String key = one.getKey(); Integer value = one.getValue(); } HashMap을 이용해서 key, value를 넣고 이용하는 예제 entrySet()으로 향상된 for문을 이용해서 key, value를 추출하는데 유용하다. 업무에서 유용하다. Back End/Java 2024.02.06
SSO 작업중 도메인과 ip주소 CORS에러 SSO(Single Sign On) 작업을 완료하고 개발단에서는 제대로 쿠키값이 로그인 정보가 담겨서 넘어오는데 운영단에는 계속해서 쿠키값에 로그인 정보가 담겨서 넘어가질 않았는데. CORS policy 에러가 나오면서 접근이 denied 됬다고 나왔다. 여러부분을 확인해보다 확인된것이 개발단에는 로그인이후 도메인주소로 redirect해주고있었고 운영단에는 ip주소로 redirect하게 설정이 되어있었다. 즉슨 CORS에서는 IP와 도메인 주소를 구분한다는것을 알게되어 IP주소가 아닌 등록된 도메인주소로 redirect하게 변경해주니 정상적으로 운영단에서도 쿠키값에 로그인 정보를 담아왔다. IT/오류해결노트 2024.01.31
알고리즘 기법 정리 가장 기본적인 기법들 # 브루트포스(brute force) # 선형 구조를 전체적으로 탐색하는 순차 탐색 # 비선형 구조를 전체적으로 탐색하는 1. 깊이 우선 탐색(DFS, Depth First Search) 2. 너비 우선 탐색(BFS, Breadth first search) IT/알고리즘, 코딩테스트 2024.01.31
MSSQL MERGE문 <-> Postgresql WITH문 두 구문은 비슷하다. 해당하는 자료가없으면 INSERT문을 실행하고 있으면 UPDATE문을 사용하는데 구문이 조금 다르다. # mssql MERGE INTO table_a AS a USING ( select #{A} as B ,#{B} as B ) AS b ON (a.A = b.A) and (a.B = b.B) WHEN MATCHED THEN UPDATE SET a.C = #{C} ,a.D = CURRENT_TIMESTAMP ,a.E = #{E} WHEN NOT MATCHED THEN INSERT( A ,F )VALUES( #{A} ,#{F} ); mssql은 이런식으로 mybatis에서 가져온 데이터를 USING문에서 변수에 넣어준다. 그리고 이 b라고 alias를 선언해주는데 ON절에서 이 조건에 맞.. DB 2024.01.16
코딩테스트에서 문자열을 한번에 입력을 하는 방법 (백준 11382) 보통 Scanner sc = new Scanner(System.in)를 썼는데 77 77 7777 이런식으로 공백을 기준으로 입력을하는 문제가 나왔다. 아래와같이 BufferedReader 클래스로 입력을 받아주고 StringTokenizer로 공백을 기준으로 문자열로 뽑아주는 작업을 해주면된다. 백준 11382번 문제 예제 BufferedReader br = new BufferedReader(new InputStreamReader(System.in); StringTokenizer st = new StringTokenizer(br.readLine()); int A = Integer.parseInt(st.nextToken()); int B = Integer.parseInt(st.nextToken()); i.. IT/알고리즘, 코딩테스트 2023.12.26
라즈베리파이4 8GB 구매 - 231204 AWS를 사용해보니 혼자사용하기 비용이 조금 들길래 라즈베리파이4 8GB와 관련키트 세트를 집에서 직접 홈서버를 구축해보고 장난감처럼 굴려보고 공부해보고 싶어서 16만원에 구매를 하였다. 생긴건 투박한데 직접 만지면서 공부하는 기분이든다. 일단 기본적인 포트들을 연결하고 lan선을 통해 공유기에 연결해주고. 공유기에서 내부망 ip번호를 딴뒤 노트북으로 putty를 통해 접속했더니. connection refused가 나왔다. 추가적인 작업을위해서는 라즈베리파이에 모니터를 연결해서 ssh연결을 허용해주는 설정작업을 거쳐야한다. 그리고 라즈베리파이가 처음 공유기에 연결이되면 ip가 자동으로 할당되게 되있어서 고정 ip를 사용하게 설정을 바꿔줘야한다. IT/기타개발 2023.12.05
(Spring) Controller에서 request의 paramMap을 전부 꺼내오는 방법 Map paramMap = new HashMap(); request.getParameterNames().asIterator() .forEachRemaining(paramName -> paramMap.put(paramName, request.getParameter(paramName))); IT/오류해결노트 2023.12.04
(완강후기) 스프링의 정석 : 남궁성과 끝까지 간다 더 공부를 해보고싶어 공부하던 도중 다른개발자에게 추천을받아 fastcampus의 해당강의를 듣게됬다. 현재 현업개발자로 일을하고 있고 Java와 Spring을 이용해 일을하고 있지만 아직 지식의 부족함을 많이 느끼고 기초의 부족함을 느꼈었는데 역시 Java의 정석의 남궁성선생님의 강의를 듣고 기초지식이 많이 채워지게 되었다. 적지않은 강의량으로 일하면서 듣기 쉽지는 않았지만 배우고 익히고 직접 손으로 코딩하는 작업들로 인하여 많은부분이 채워지게 되었던것 같다. 현재 두번째 다시 듣고있는데 이전과는 또다른 배움이 느껴진다. 특히 Spring Framework의 구조라던지 어떤부분에서 에러가 생기면 어떻게 에러해결을위해 접근해야하고 수정해야하는지 혹은 개념을 넘어 응용은 어떻게하는지 알수있게되었다는 점이 .. IT/개발관련강연, 세미나 2023.12.03
Active Directory(AD, 액티브 디렉터리) 액티브 디렉터리는 사용자가 microsoft it환경에서 업무를 수행하는데 도움을 주는 데이터베이스이며 서비스의 집합이다. 일반적인 윈도우 버전을 구동하는 컴퓨터는 AD환경의 일부가 될 수 있다. 컴퓨터에서 사용하는 정책들 패스워드의 최소 숫자나 변경일을 정하거나 컴퓨터의 화면보호기를 실행하는 정책 등을 저장하고있는 일종의 데이터베이스라고 생각하면된다. 기본적으로 Active Directory 데이터베이스 파일은 C:\Windows\NTDS에 저장되며 일반적인 데이터베이스와 다르게 암호화되어 저장되어 메모장이나 텍스트로는 열어볼 수 없다. (Active Directory Database, SYSVOL and System State - http://www.rebeladmin.com/2015/02/activ.. IT/기타개발 2023.11.13
username is not in the sudoers file 이렇게 숫자로된 계정을 생성한후 루트권한으로 명령을 실행할려고하니 sudoer파일에 없다고 sudo 명령어를 사용하지 못했다. 이럴때는 일단 su 명령어로 루트계정으로 전환해준뒤 vi /etc/sudoers 파일로 들어가 아래 (username) ALL=(ALL:ALL) ALL을 root 권한이 적혀있는곳 아래줄에 추가해주면된다. Cloud/Linux, UNIX 2023.10.12