목록분류 전체보기 (220)
코딩마을방범대
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cd14Qd/btshzBqbolA/z0enkZRRhOS2Ob09mZXOnK/img.png)
외부 접속 허용 설정 변경 1. mysql 설정 파일 열기 $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 2. ip address 변경 기존 bind-address(127.0.0.1)을 0.0.0.0으로 변경 후 :wq로 저장 후 종료 외부 접속 가능한 사용자 계정 추가하기 1. MySQL 접속 $ sudo mysql -u root -p 2. 기존 사용자 목록 확인 mysql> SELECT User, Host FROM mysql.user; 3. 사용자 계정 추가 mysql> CREATE USER '유저네임'@'%' IDENTIFIED BY '패스워드'; 4. MySQL 종료 후 root 계정으로 재로그인 mysql> quit $ sudo mysql -u root -p 5..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bW21Ok/btshBlmuAhc/7GauAwd0TKE7h1RypQxuHk/img.png)
tomcat 오류가 발생하는 경우 /var/log/tomcat9 위 경로에서 로그 파일(catalina.out) 확인이 가능하다. 위 경로로 접속한 후 하기 명령어를 실행하면 로그파일 확인이 가능하다. sudo tail -1000f catalina.out // 1000줄 확인 sudo tail -f catalina.out // 10줄 확인 // 경로로 이동하지 않고 한 번에 실행하는 방법 sudo tail -1000f /var/log/tomcat9/catalina.out 💡 TIPS! MySQL 데이터베이스 공유하는 방법 Navigator의 Users And Privileges -> Add Account 클릭 Name과 Password 입력 후 Limit to Host Matching은 %로 Apply ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tPHqH/btshA4L1VfA/yPXXIeDp7kXjHfZf0vFCfk/img.png)
Nginx란? 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용 Reverse Proxy Server로 활용하여 WAS의 부하를 줄일 수 있는 로드밸런서 역할 Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화됨 Nginx의 장단점 Nginx의 장점 이벤트 중심 접근 방식을 사용하여 클라이언트 요청 제공 제한된 하드웨어 리소스로도 여러 클라이언트 요청을 동시에 효율적으로 처리 단일 스레드를 통해 여러 연결을 처리 가능 최소한의 리소스로 웹 서버의 아키텍처를 개선하기 위해 독립형 HTTP 서버로 배치 가능 Nginx의 단..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/I9An6/btshKRYT1Lk/uN2lLzMEVM4ZBL4Bu86mJK/img.png)
프록시(Proxy) 사전적 의미: 대신, 대리 보안상의 문제로 직접 통신을 주고 받을 수 없는 두 PC 사이에서 통신을 할 때 중간에서 대리로 중계하는 것 클라이언트가 서버를 직접 접근하지 못하기 때문에 접근 가능한 사이트를 제한할 수 있으므로 보안을 향상할 수 있음 클라이언트가 직접 App 서버에 직접 요청하는 경우, 프로세스 1개가 응답 대기 상태가 됨 따라서 프록시 서버를 둠으로써 요청을 배분하는 역할을 함 클라이언트에서 리소스를 요청 프록시 서버에 도착 서버에 전달 프록시 서버는 서버의 응답을 클라이언트에 전달 포워드 프록시(Forward Proxy) 클라이언트는 서버를 알지만, 서버는 프록시를 통해 요청이 오기 때문에 클라이언트를 알지 못함 (서버에서 받는 IP는 클라이언트의 IP가 아닌 프록시..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Xkusk/btshAAdmlmB/KJeV656USTPO6QrxwuxPa1/img.png)
QueryDSL 을 사용해야 하는 이유QueryMethod주어진 명령어를 통해 한정적인 쿼리만 생성 가능컴파일 시 오류를 발견할 수 있음JPQL사용자가 원하는 쿼리를 자유롭게 생성할 수 있음문법 오류가 있는 경우에도 컴파일 시 오류를 잡을 수 없고 런타임 때 확인 가능개행이 포함되어 복잡한 쿼리의 경우 문법이 복잡해짐 세팅하기 build.gradle 설정java 1.8spring boot 2.7.11스프링부트 버전 별 설정법dependencies { ... //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importe..
@Converter란? 변수의 타입을 변환하여 출력/저장할 때 사용 사용 방법 Converter 클래스 생성 방법 1. AttributeConverter 를 구현 엔티티의 컬럼 타입, 데이터베이스의 컬럼 타입을 입력 받음 @Converter public class MailTypeConverter implements AttributeConverter { // 데이터베이스 타입으로 변경 (코드) @Override public String convertToDatabaseColumn(MailTypeEnum attribute) { return attribute.getType().equals("html") ? "CMMMCD001" : "CMMMCD002"; } // Entity 타입으로 변경 (소스, Enum 타입..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MThro/btshA4ebHDM/bchm2tzRhyrqukJ5JKkdvK/img.png)
CSRF(Cross-site request forgery) 공격이란 사이트 간 요청 위조 권한을 가진 유저가 스스로 시스템에 있는 정보를 탈취하거나 망가뜨리도록 조종하는 것 CSRF방어의 핵심은 XSS차단 + 비정상적인 루트를 통한 CUD를 막는데 있음 CSRF의 방어 방법 1. MAKE TOKEN & CHECK 로그인시 auth token 값을 생성(세션에 보관) session.setAttribute("CSRF_TOKEN",UUID.randomUUID().toString()); 화면 단에선 해당 토큰을 빼내어 hidden값에 넣어 놓음 submit 처리시 세션에 있는 값과 비교 / 파라미터로 전달된 csrf 토큰 값 String param = request.getParameter("_csrf"); //..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/40k5l/btshy7iBi2B/knII86qM9hkH6tAzaiy6M0/img.png)
token 같은 response가 항상 바뀌는 값은 일일히 api 별로 request 값을 수정해주기 번거롭다 이 같은 경우에 response 값을 바로 변수로 저장할 수 있는 방법을 사용하는 것이 편리하다! response 데이터를 받을 api request에서 Tests 탭에 하기와 같이 코드를 작성한다 jsonData.data의 data는 json key값을 기입하면 됨 var jsonData = JSON.parse(responseBody); if (jsonData) { pm.environment.set("부여할 변수명",jsonData.data); } 해당 api 폴더에 부여된 변수 그룹에 변수명이 추가되며, 변수명에 해당 데이터가 저장된다. ❗❗ Tests 탭에 console.log를 찍을 경우..