전체 글126 IP란?, 클래스, 서브넷마스크, 공인IP/사설IP IP란? 컴퓨터 네트워크에서 장치들이 서로를 인식하기 위해 사용되는 특수한 번호입니다. 모든 네트워크 장치(라우터, 서버..)는 IP를 가지고 있습니다. IP주소를 이용하여 발신자가 수신자를 향하여 데이터를 전송합니다. IP는 고정된 IP를 할당받는 방법과 DHCP를 이용하여 동적으로 할당받는 방법도 존재합니다. IPv4(Internet Protocol version4) 32비트로 구성된 주소 체계로, 보편적으로 사용되는 버전입니다. 8비트 단위로 점을 찍어 4개로 구분 합니다. 8비트 단위를 옥텟이 이라고도 합니다. 8비트를 4개로 구분하여 10진수로 합니다. IPv4 주소는 네트워크 식별자와 호스트 식별자로 구성되며, 예를 들어 "192.168.0.1"과 같은 형식으로 표현됩니다. IPv4로 표현이 .. 카테고리 없음 2023. 6. 12. Java를 CLI 환경에서 실행하는 방법,intellij 에서 엔트리 포인트Main(String[] args) 인자설정 Java를 CLI 환경에서 실행하는 방법 1-1. 자바 컴파일 javac : 자바 소스를 컴파일 하여 실행가능한 byte code로 변환해 준다. (jdk에 포함된 도구) javac 실행 이후에 .class(JVM에서 실행되는 bytecod) 파일이 생성된다. //소스파일 경로명으로 컴파일 하는 경우 javac src/main/java/JavaGit.java //컴파일 하려고 하는 소스 파일의 경로로 이동해서 컴파일 하는 경우 cd src/main/java javac JavaGit.java 1-2. 실행 java : .class파일을 실행한다. main메서드가 있어야 하고, 메인 메서드가 프로그램의 엔트리 포인트로 동작한다. > java JavaGit usage: add, commit //인자값이 없는 .. 카테고리 없음 2023. 6. 7. mockito를 이용해서 외부 API mocking 테스트 시작 팀프로젝트를 내에서 기업의 사업자 번호를 확인하는 로직이 필요했는데 해당 로직을 팀원분께서 공공기관 API를 활용하여 해결할 수 있도록 코드를 작성해 주셨다. 하지만 회원 가입 로직을 작성하고 테스트하려 하는 과정에서 어떻게 테스트를 해야 하나에 대한 고민이 수중위로 올라왔다. 실제 서비스에서 단순히 한번 사용자를 만드는거라면 테스트 데이터를 만들어서 사용하면 되지만 기업회원이 회원가입을 하는 로직내에 포함되어 있는 사업자 인증 로직을 테스트 동작시마다 계속해서 API 요청을 하는 것은 무리라고 생각했다. 이 과정에서 과거 다른 개발자 분들이 말하시던 모킹을 해볼까 하는 생각이 들었다. 사실 현재 프젝에서는 컨트롤러 테스트 시에 mock mvc를 이용해서 테스트 하고 있어 mockito사용은 처음이.. 카테고리 없음 2023. 6. 7. 3장 함수 작게 만들어라 20줄도 길다. 2~5줄 구성하라 함수에서 들여 쓰기 수준은 1단이나 2단을 넘어서지 않아야 한다(다중 중첩 금지) 한 가지만 해라 함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다. 함수 내에 의미 있는 이름으로 추출가능한 부분이 있다면 함수가 분리 가능하다는 뜻이다. 함수당 추상화 수준은 하나로 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다. 코드는 위에서 아래로 읽혀야 한다. -> 내려가기 규칙 Switch 스위치 문은 작게 만들기 어렵다. 하지만 switch문을 완전히 피할 방법은 없다. 하지만 switch 문을 저 차원 클래스에 숨기고 반복하지 않는 방법은 있다. -> 다형성을 이용한다. switch 문을 한 가지 단일 작업을 하기 어렵다는 점도 있다. 다.. 책 리뷰/클린코드 2023. 6. 5. fork한 repository로 팀 repository에 올리기 포크 한 리포지토리로 풀리퀘를 보내는걸 처음에 잠깐 헤매어서 이게 맞는 방법인지는 모르겠지만 내가 사용하고 있는 방법을 써보기로 했다. (나중에 까먹을 나를 위해서) 세팅해야 하는 상황 팀프젝을 개인 리파짓 토리로 포크 했다. 개인 리포지토리(repository)로 포크(fork) 하는 방법은? 더보기 copy the main branch only를 클릭하면 main만 카피된다. 다른 브랜치까지 카피하고 싶다면 체크하지 말아야 한다. 위와 같이 개인 repository가 생성된다. 해야 할 일은 개인 리포지 토리로 푸시 후에 팀 리파짓으로 풀리퀘를 보내야 해야 한다. 추가로 우리 팀은 develop 브랜치에서 따서 개발을 진행하기로 하였다. 처음 도전 개인 repository로 작업 후에 github 사.. 카테고리 없음 2023. 6. 2. 자바 환경변수 처리, Intellij에서 환경변수를 설정하여 실행시키는 방법 IntelliJ 설정 파일에서 Application 환경 변수 처리하는 방법 1. 우선 원하는 프로젝트를 한번 실행시킨다. (run) 2. Edit Configuration에 들어간다. 2. 실행시키려고 하는 Run Configuration에 들어간 후에 Environment Vaiables에 들어간다. 사진상 하트 부분에 있는 docs 이미지를 클릭한다. 3. 원하는 환경변수를 세팅한다.(+버튼 후에 추가) DB 패스워드, 경로 등.. 4. 기존 코드에서 아래와 같이 수정한 후에 실행시키면 된다. private static Connection getConnection() throws SQLException, ClassNotFoundException { Class.forName("com.mysql.cj... 카테고리 없음 2023. 5. 29. Spring: Circular view path에러 상황 더보기 //signup.html User Signup EMAIL: Password: RealName: Username userName: Sign Up @Controller @RequiredArgsConstructor public class userController { private final UserService userService; @GetMapping("/signup") public String showSignupForm(Model model) { // 회원가입 폼을 보여주기 위해 signup.html을 반환합니다. return "signup"; } @PostMapping("/signup") public String signup(@ModelAttribute UserRequestDto user.. Spring,SpringBoot 2023. 5. 26. GitFlow란 GitFlow git을 사용하는 개발 환경에서 브랜치 간의 문제없이 배포까지 안정적으로 할 수 있도록 Branch를 관리하는 전략이다. GitFlow 를 활용하여 브랜치 생성에 규칙을 만들어 협업을 유연하게 하는 방법론이다. 1. main(master) : 현재 운영되고 있는 코드를 가진 브랜치 2. develop : 다음 출시 버전을 개발하는 브랜치 - main + @ (main에 추가로 코드를 가지고 있는 브랜치) 3. feature : 기능을 개발해 나가는 브랜치 - 기능 개발을 하는 브랜치 develop branch에서 브랜치를 생성하고 머지한다. 4. release : develop 브랜치 기반으로 다음 출시 버전을 준비하는 브랜치 - develop 브랜치에서 release 브랜치로 옮긴 후에 .. 카테고리 없음 2023. 5. 18. AWS 인스턴스가 안보이는 경우 AWS 인스턴스가 안보이는 경우 갑자기 생성한 인스턴스가 안보여서 다른 아이디로 만든줄 알고 놀랐다 알고보니 지역 초기 설정이 다른곳으로 되어있어서 그런거였다 다시 서울로 설정하니 확인 가능했다! 카테고리 없음 2023. 5. 15. [백준 Java] 3055 탈출 🔗 문제링크 🔗 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 🌟 생각 흐름 - 개인적 풀이 방법 🌟 물이 이동하는 경로와, 고슴도치가 이동하는 경로를 생각한다. 한 턴을 기준으로 BFS를 이용하여 먼저 물을 이동시키고, 고슴도치가 이동하는 방식으로 알고리즘을 구현하였다. 쉽게 물을 이동시키기 위해 물의 좌표를 입력당시 큐에 넣어두고 고슴도치의 시작 위치 또한 큐에 넣어준다. 이후에 물을 이동시키면서 기존 BFS와 같이 큐에 추가하면서 이동시킨다. ㄴ 차이점은 visit배열을 따로 선언하는것이 아닌 map에서 물이 이동.. 알고리즘/백준 2023. 5. 12. JPA에서 soft delete 쉽게 처리하기 이전 글 : 2023.05.09 - [SQL] - Soft Delete, Hard Delete (논리삭제와 물리삭제) Soft Delete, Hard Delete (논리삭제와 물리삭제) 프로젝트를 하다가 이런 생각을 하였다 멤버를 삭제하면 그냥 진짜 바로 삭제해야 하나..? 근데 그렇게 되면 만약 유저가 잘못 누른 경우라면? 만약 이 사람이 우리 사이트를 악용해서 관련 기록 lahezy.tistory.com 수정 전 코드 현재 멤버 클래스는 다음과 같이 구성되어 있다. 이 중 activated는 현재 해당 멤버가 삭제되었는지를 나타낸다. activated가 false 이면 삭제된 객체이다 (soft delete ) JPA에서 soft delete를 도와주는 기능을 모를때는 직접 query문을 조작하여 논.. JPA 2023. 5. 12. JPA, H2 데이터 베이스 대소문자 구분에러 결론 spring에서 대소문자 구분을 하지 않도록 하여 통과하였습니다. 공식문서 내용중 ""(따옴표로 이스케이프)되지 않은것은 대문자로 변경하여 실행한다는것을 보고 이로인하여 문제가 발생했다고 판단하였고 ""로 감싸지 않은 것들도 쿼리 그자체로 실행될 수 있도록 수정하였습니다(대문자로 변경하여 실행되지 않도록 하였습니다) spring.datasource.url=jdbc:h2:mem:testdb;DATABASE_TO_UPPER=FALSE 을 추가하고 기존에 수행하려던 코드(대소문자를 구분하지 않는 코드) @SQLDelete(sql = "UPDATE member SET activated = false WHERE member_id = ?") 로 수정하여 테스트 케이스를 통과하였습니다. 문제 발견 soft de.. JPA/ORM JPA 2023. 5. 12. 이전 1 2 3 4 5 6 ··· 11 다음