chatGPT API 에 대한 고민을 하다 쿠키, 세션 방식에 대해 생각해 볼 수 있는 계기가 생겨 이를 정리해 보고자 한다. 또한, 학원에서 배운 개념에서는 컨트롤러에 비즈니스 로직을 전부 넣고 서비스를 따로 분리한 적이 없었는데, 동기가 알려 주어 컨트롤러에서의 비즈니스 로직 분리에 대한 개념을 알게 되었다. (난 스프링의 스만 알고 있었다는 것을 다시금 알게 되었다) 갑자기 이 이야기를 왜 꺼냈냐면, 나는 기존에서는 컨트롤러에서 모든 비즈니스 로직을 전부 처리했었어야 했기에 당연히 컨트롤러에서 비즈니스 로직을 통으로 처리해서 당연히 컨트롤러에서 세션을 받고 자연스레 처리했는데, 비즈니스 로직을 서비스로 분리하며 세션을 어떻게 처리해야 할지에 대한 고민을 하게 되었다. 이에 대한 이야기는 쿠키와 세션..
짜잔! 취업에 성공한 채로 돌아왔습니다. 그런데 대단히 우연이 겹쳐 좋은 회사에 입사하게 되었다고 생각하고 있습니다. 우선 여러모로 수료하기 한 달 전부터 마음이 너무 바빴고 여러모로 잡코리아나 이런 데에 서류를 넣기 시작했는데, 첫 회사 고민이 굉장히 많았습니다. 수많은 SI 회사들의 악명, 서비스 회사, 어느 조건으로 가야 하지? 내 서류가 통과할 수 있을까? 같은 것들을 고민했고, 마침 학원에서 제의해 준 괜찮은 조건 회사에 서류를 넣고 서류 통과! 사실 이번 회사는 세 번이나 면접 과정을 거쳐야 하기도 했고, 학원이 아닌 채용 공고 사이트를 보고 지원한 곳들도 면접 후 최종 합격을 두 곳 받았었기 때문에 굉장히 고민이 많았습니다. 그러나 내가 가장 원하는 경험을 줄 수 있는 곳, 그리고 바라던 조..
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해 주세요. 해당 문제를 봤을 때, 나는 charAt 을 사용해서 my_string 과 letter 문자를 서로 비교해 준 다음, 일치하면 빼 주는 형식으로의 알고리즘을 생각했다. 그런데 이를 식으로 생각하려니 전혀 적히질 않았다. (...) 그래서 구글링을 해 본 결과, 나는 replace 란 메서드를 알 수 있게 되었다. 해당 문제는 이 메서드 하나로 쉽게 풀 수 있는 문제였던 것이다. class Solution { public String solution(String my_string, String letter) { String ans..

프로그래머스 0 레벨 단계 문제를 풀던 중, 최댓값 만들기가 나왔다. 처음엔 메서드를 활용할 생각을 하지 못하고 있다가, 기존에 있었던 수와 계속 비교하며 앞으로 당겨 줘야 하나? 하는 생각 중에 해당 메서드를 알게 되었다. 자바에서 배열 오름차순 정렬을 하는 법은 간단하다. import java.util.*; class Solution { public int solution(int[] numbers) { int answer = 0; Arrays.sort(numbers); return numbers[numbers.length-2] * numbers[numbers.length-1]; } } Arrays 클래스를 임포트 해 주고, 기존에 있는 메서드에 매개변수를 넣어 주면 된다. 만약 int[] number..

사실 나는 이 문제를 보고 귀찮지만 금방 풀 수 있는 문제라고 생각했다. 그냥 subString 을 쓰면 되는 문제 아닌가? 싶어 금방 풀고 제출했는데, 남들이 푼 답을 보고 이렇게 풀면 안 된다는 사실을 알아버린 것이다. 우선 내가 문제를 푼 방식은 이렇다. import java.util.*; class Main { public static void main(String args[]){ Scanner sc=new Scanner(System.in); int a=sc.nextInt(); String b=sc.next(); String b1=b.substring(0,1); String b2=b.substring(1,2); String b3=b.substring(2,3); int answer1; int ans..
김영한 님의 스프링 입문 강의를 전부 듣고, 자바 기초를 다시 다져야겠단 생각이 절실해져 새로운 마음가짐으로 백준 문제 풀이를 시작했다. 오늘부터는 그 유명하다던 남궁성 강사님의 자바의 정석도 정주행해 볼 예정! 하여튼 문제는 여기에서 발생했다. 프로그래머스 0단계에서는 딱히 내가 클래스와 메서드를 지정해 주지 않아도 자동으로 템플릿을 제공해 주었고, 메서드로 매개변수로 받게 해 입력을 설정해 줄 일이 없었는데, 백준에서는 시작점부터 막히게 된 것이었다. 배운 기억은 있지만 굉장히 가물가물했다. (...) 과정이 오래 지나면서 콘솔에서 입력을 받는 것이 아니라 view 에서 전달해 온 정보들을 로직 처리 하는 것에 익숙해져 있었기 때문에, Scanner 사용이 조금 낯설게 느껴졌고 이번 기회에 다시 정리..

이번에는 substring() 메서드에 대해 자세히 알아볼 수 있는 계기가 되었다. 회원가입할 때, email 을 합쳐서 넘기는 것까지는 성공했는데 만약 회원 정보를 수정하게 된다면 합친 이메일을 @로 나누어 프론트에 보여 주어야 한다. 우선 내 정보 수정에 관련된 정보를 DB 에서 모두 가지고 와야 한다. public MemberDTO getMember(String memId){ MemberDTO dto=null; try{ con=getCon(); pstmt=con.prepareStatement("select * from tbmember where memId=?"); pstmt.setString(1, memId); rs=pstmt.executeQuery(); if(rs.next()){ dto=new M..

약관 동의 페이지에서 고려한 바는, (1) 필수로 표시된 체크 박스가 두 개 전부 체크가 되어야 다음 단계로 넘어갈 수 있다. (2) 모두 동의한다는 체크 박스를 누를 시 전부 체크 표시된다. (3) 만약 필수 표시에 하나라도 체크 해제 되면, 모두 동의한다는 체크 박스에도 해제된다. (4) 필수 동의에 직접 두 개 모두 표시해도, 모두 동의합니다 체크 박스에도 표시된다. 해당 것들은 모두 Form 에서 자바 스크립트로 처리했다. 이용 약관, 개인 정보 수집 및 이용에 모두 동의합니다. 감귤농장 이용 약관 동의(필수) 여러분을 환영합니다. 개인정보 수집 및 이용 동의(필수) 개인정보보호법에 따라 감귤 농장에 회원가입 신청하시는 분께 수집하는 개인정보의 항목, 개인정보의 수집 및 이용목적, 여기에서 주목해..

회원가입을 진행하기 전 결정했던 사안은, 사용자로부터 입력받은 패스워드가 개발자에게 노출이 되면 안 된다는 것이었다. 이런 고민을 하고 있던 도중, 프로젝트 팀원 중 실무자로 일하셨던 분이 계셨었는데 그분이 MD5 를 해 보면 어떻겠냐고 먼저 제의를 주셨다. 쿼리 작성조차 잘 모르고 있었던 때여서 굉장히 많은 고민을 했는데, 생각보다 쉽게 변환할 수 있었다. 우선 구상했었던 member 테이블을 보자. 우선 우리는 테스트 용도가 필요했었기 때문에 유저가 직접 입력한 패스워드를 변함 없이 memPw 로 받긴 받았지만, 궁극적인 목표는 사용자의 비밀번호를 DB 관리자가 몰라야 하기 때문에 memMD5Pw 만 있다고 생각하고 진행하였다. 우선 inputForm, 즉 사용자가 정보를 입력하는 회원가입 창을 보자..

김영한 강사님의 스프링 강의 입문을 공부하는 도중, 예문에 문득 의구심이 들면서 헷갈리기 시작한 곳이 있었다. 우선 정해진 가정으로, DB가 정해지지 않았지만 미리 개발을 해야 하는 상황이 와서 DB를 대신하여 HashMap 을 이용했고, 기존 쿼리 insert 역할을 대신 해 줄 save() 메서드에서 생긴 의문이다. package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } pub..